Redis使用场景一,查询出的数据保存到Redis中,下次查询的时候直接从Redis中拿到数据。不用和数据库进行交互。...
maven使用:
<!--redis jar包--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.6.2.RELEASE</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-ehcache</artifactId><version>1.0.0</version></dependency>
1:redis的连接信息
#访问地址 redis.host=127.0.0.1 #访问端口 redis.port=6379 #注意,如果没有password,此处不设置值,但这一项要保留 redis.password=#最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。 redis.maxIdle=300 #连接池的最大数据库连接数。设为0表示无限制 redis.maxActive=600 #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 redis.maxWait=1000 #在borrow一个jedis实例时,是否提前进行alidate操作;如果为true,则得到的jedis实例均是可用的; redis.testOnBorrow=true
2:spring和redis的整合
1 <beans xmlns="http://www.springframework.org/schema/beans" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns:p="http://www.springframework.org/schema/p" 4 xmlns:mvc="http://www.springframework.org/schema/mvc" 5 xmlns:util="http://www.springframework.org/schema/util" 6 xmlns:aop="http://www.springframework.org/schema/aop" 7 xmlns:context="http://www.springframework.org/schema/context" 8 xmlns:task="http://www.springframework.org/schema/task" 9 xsi:schemaLocation="http://www.springframework.org/schema/beans 10 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 11 http://www.springframework.org/schema/util 12 http://www.springframework.org/schema/util/spring-util-4.3.xsd 13 http://www.springframework.org/schema/mvc 14 http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd 15 http://www.springframework.org/schema/aop 16 http://www.springframework.org/schema/aop/spring-aop-4.3.xsd 17 http://www.springframework.org/schema/context 18 http://www.springframework.org/schema/context/spring-context-4.3.xsd"> 19 20 21 <!-- 引入properties配置文件 --> 22 <context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/> 23 24 <!-- redis连接池 --> 25 <bean id="jedisConfig" class="redis.clients.jedis.JedisPoolConfig"> 26 <property name="maxTotal" value="${redis.maxActive}"></property> 27 <property name="maxIdle" value="${redis.maxIdle}"></property> 28 <property name="maxWaitMillis" value="${redis.maxWait}"></property> 29 <property name="testOnBorrow" value="${redis.testOnBorrow}"></property> 30 </bean> 31 32 <!-- redis连接工厂 --> 33 <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> 34 <property name="hostName" value="${redis.host}"></property> 35 <property name="port" value="${redis.port}"></property> 36 <property name="password" value="${redis.password}"></property> 37 <property name="poolConfig" ref="jedisConfig"></property> 38 </bean> 39 <!-- redis操作模板,这里采用尽量面向对象的模板 --> 40 <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> 41 <property name="connectionFactory" ref="connectionFactory"/> 42 <!-- 如果不配置Serializer,那么存储的时候只能使用String,如果用对象类型存储,那么会提示错误 can't cast to String!!!--> 43 <property name="keySerializer"> 44 <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> 45 </property> 46 <property name="valueSerializer"> 47 <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/> 48 </property> 49 <!--开启事务--> 50 <property name="enableTransactionSupport" value="true"/> 51 </bean> 52 </beans>
3:在业务代码中使用
1 /** 2 * 使用redis的缓存机制 3 */ 4 @Autowired 5 private RedisTemplate redisTemplate; 6 7 /** 8 * 分页查询所有 9 10 * @return 11 */ 12 @Override 13 public List<Goods> listGoods() { 14 List<Goods> goods = goodsDao.listGoods(); 15 for(Goods goods1:goods){ 16 //把每一个goods对象保存到redis中的List中。 17 redisTemplate.opsForList().rightPush("goodsList", goods1); 18 } 19 return goods; 20 }
4:测试
@Testpublic void testListGoods(){List<Goods> goods = redisTemplate.opsForList().range("goodsList", 0, -1);if(goods.size()==0){List<Goods> goods1 = goodsService.listGoods();for (Goods goods2:goods1){System.out.println(goods2);}}else {// System.out.println(goods);for(Goods goods1:goods){System.out.println(goods1);}}}
可以看到已经保存到redis的数据库中了。
5:编写一个RedisTemplate的公用类
package com.betteryanwo.util;import org.springframework.data.redis.core.*;import java.util.List; import java.util.Map; import java.util.Set;/*** Create by 六* Date:18-7-16* RedisTemplate的公用类*/ public class RedisTemplateUtil {private RedisTemplate redisTemplate;public RedisTemplateUtil(RedisTemplate redisTemplate) {this.redisTemplate = redisTemplate;}public void set(String key, Object value) {ValueOperations valueOperations = redisTemplate.opsForValue();valueOperations.set(key, value);//BoundValueOperations的理解对保存的值做一些细微的操作 // BoundValueOperations boundValueOperations = redisTemplate.boundValueOps(key); }public Object get(String key) {return redisTemplate.opsForValue().get(key);}public void setList(String key, List<?> value) {//Operation 操作。ListOperations listOperations = redisTemplate.opsForList();listOperations.leftPush(key, value);}public Object getList(String key) {return redisTemplate.opsForList().leftPop(key);}public void setSet(String key, Set<?> value) {SetOperations setOperations = redisTemplate.opsForSet();setOperations.add(key, value);}public Object getSet(String key) {return redisTemplate.opsForSet().members(key);}public void setHash(String key, Map<String, ?> value) {HashOperations hashOperations = redisTemplate.opsForHash();hashOperations.putAll(key, value);}public Object getHash(String key) {return redisTemplate.opsForHash().entries(key);}public void delete(String key) {redisTemplate.delete(key);}public void clearAll() {redisTemplate.multi();} }
转载于:https://www.cnblogs.com/bulrush/p/9318982.html
Redis使用场景一,查询出的数据保存到Redis中,下次查询的时候直接从Redis中拿到数据。不用和数据库进行交互。...相关推荐
- SparkSql-redis:将查询到的结果保存到redis中
2020.12.08号作业题 1.启动redis redis-server /usr/local/redis/redis.conf 2.写代码 问题1.计算出总的成交量总额(结果保存到redis中) ...
- mysql 查询 系统字段 自然日_吴裕雄--天生自然python数据清洗与数据可视化:MYSQL、MongoDB数据库连接与查询、爬取天猫连衣裙数据保存到MongoDB...
本博文使用的数据库是MySQL和MongoDB数据库.安装MySQL可以参照我的这篇博文:https://www.cnblogs.com/tszr/p/12112777.html 其中操作Mysql使 ...
- 把数据保存到cook_将用户信息保存到Cookie中
/** * 把用户保存到Cookie * * @param request * @param response * @param member */ private void rememberPwdA ...
- Scrapy中将数据保存到Excel和MySQL中
目录标题 1. Excel 1.1 openpyxl 1.1.1 代码说明 1.1.2 注意 1.2 pandas 1.2.1 代码说明 1.2.2 常见错误 1.3 openpyxl和pandas对 ...
- 如何将网页内容保存到计算机中,如何将网站导出excel表格数据-如何把网页数据保存到EXCEL...
网页上的表格数据怎么复制到excel 1.打开excel表格. 2.打开菜单"数据->"导入外部数据"->"新建 Web 查询",在&qu ...
- 老鱼Python数据分析——篇七:将爬取的数据保存到CSV文件
使用Python操作CSV文件非常方便,三行代码搞定. 一.向文件中追加数据 import csv# 将数据写入文件 with open("d:\\data.csv", " ...
- html 保存xlsx,HTML SaveXLSX按钮防止将数据保存到SlickGrid的XLSX文件中
我在网页上有一个SlickGrid,我正在尝试添加一个按钮来调用函数CreateXLSX().当我编辑Main.jade的代码,我输入:HTML SaveXLSX按钮防止将数据保存到SlickGrid ...
- C++读取txt数据为二维数组 将数据保存到txt文本中
C++读取txt数据为二维数组 保存txt文本数据 C++文件读写操作有:ofstream,ifstream,fstream: #include <fstream> ofstr ...
- Python中用pandas将numpy中的数组数据保存到csv文件
Python中用pandas将numpy中的数组数据保存到csv文件 本博客转载自:[1]https://blog.csdn.net/grey_csdn/article/details/7018587 ...
- 将labview连续数据保存到mysql数据库器
这一篇是在之前完成Labview和mysql连接,并且进行了简单的CRUD删除的基础上来的.我们一般不会拿Labview来做学生这种数据管理系统,而是对于基本传感器数据的采集和保存,而传感器采集数据会 ...
最新文章
- matlab计算原点矩,关于用matlab求样本均值方差以及k阶原点矩的matlab程序
- Java基础学习总结(7)——Object类
- ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
- swiper踩过的哪些坑
- TensorFlow2.0 —— 模型保存与加载
- 自然语言处理 —— 2.6 word2vec
- Android 系统(259)---获取本机号码及sim卡信息
- no module named google.protobuf.internal
- 算法工程师面试备战笔记2_一个完整机器学习项目的流程
- 在linux上下载图片,在Linux上使用4k Stogram下载Instagram图片库 | MOS86
- 1.5.12、面向对象下__接口Implement,接口的使用
- 关于数据库时区,这么多奥秘你都知道么?
- 两台计算机之间的远程连接
- 面向预测的时空数据学习方法分析
- C ++ Hello World和可爱的无情彩虹
- 巧用Excel笔画排序,实现计算汉字笔画数
- 测试手机电池性能的软件,电池性能早知道!安兔兔电池测试帮您忙
- django中models的filter过滤方法
- CSS3 图片扫光/辉光
- Ubuntu 14.04 安装Draftsight