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中拿到数据。不用和数据库进行交互。...相关推荐

  1. SparkSql-redis:将查询到的结果保存到redis中

    2020.12.08号作业题 1.启动redis redis-server /usr/local/redis/redis.conf 2.写代码 问题1.计算出总的成交量总额(结果保存到redis中) ...

  2. mysql 查询 系统字段 自然日_吴裕雄--天生自然python数据清洗与数据可视化:MYSQL、MongoDB数据库连接与查询、爬取天猫连衣裙数据保存到MongoDB...

    本博文使用的数据库是MySQL和MongoDB数据库.安装MySQL可以参照我的这篇博文:https://www.cnblogs.com/tszr/p/12112777.html 其中操作Mysql使 ...

  3. 把数据保存到cook_将用户信息保存到Cookie中

    /** * 把用户保存到Cookie * * @param request * @param response * @param member */ private void rememberPwdA ...

  4. 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对 ...

  5. 如何将网页内容保存到计算机中,如何将网站导出excel表格数据-如何把网页数据保存到EXCEL...

    网页上的表格数据怎么复制到excel 1.打开excel表格. 2.打开菜单"数据->"导入外部数据"->"新建 Web 查询",在&qu ...

  6. 老鱼Python数据分析——篇七:将爬取的数据保存到CSV文件

    使用Python操作CSV文件非常方便,三行代码搞定. 一.向文件中追加数据 import csv# 将数据写入文件 with open("d:\\data.csv", " ...

  7. html 保存xlsx,HTML SaveXLSX按钮防止将数据保存到SlickGrid的XLSX文件中

    我在网页上有一个SlickGrid,我正在尝试添加一个按钮来调用函数CreateXLSX().当我编辑Main.jade的代码,我输入:HTML SaveXLSX按钮防止将数据保存到SlickGrid ...

  8. C++读取txt数据为二维数组 将数据保存到txt文本中

      C++读取txt数据为二维数组 保存txt文本数据     C++文件读写操作有:ofstream,ifstream,fstream: #include <fstream> ofstr ...

  9. Python中用pandas将numpy中的数组数据保存到csv文件

    Python中用pandas将numpy中的数组数据保存到csv文件 本博客转载自:[1]https://blog.csdn.net/grey_csdn/article/details/7018587 ...

  10. 将labview连续数据保存到mysql数据库器

    这一篇是在之前完成Labview和mysql连接,并且进行了简单的CRUD删除的基础上来的.我们一般不会拿Labview来做学生这种数据管理系统,而是对于基本传感器数据的采集和保存,而传感器采集数据会 ...

最新文章

  1. matlab计算原点矩,关于用matlab求样本均值方差以及k阶原点矩的matlab程序
  2. Java基础学习总结(7)——Object类
  3. ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password‘ cannot be loaded
  4. swiper踩过的哪些坑
  5. TensorFlow2.0 —— 模型保存与加载
  6. 自然语言处理 —— 2.6 word2vec
  7. Android 系统(259)---获取本机号码及sim卡信息
  8. no module named google.protobuf.internal
  9. 算法工程师面试备战笔记2_一个完整机器学习项目的流程
  10. 在linux上下载图片,在Linux上使用4k Stogram下载Instagram图片库 | MOS86
  11. 1.5.12、面向对象下__接口Implement,接口的使用
  12. 关于数据库时区,这么多奥秘你都知道么?
  13. 两台计算机之间的远程连接
  14. 面向预测的时空数据学习方法分析
  15. C ++ Hello World和可爱的无情彩虹
  16. 巧用Excel笔画排序,实现计算汉字笔画数
  17. 测试手机电池性能的软件,电池性能早知道!安兔兔电池测试帮您忙
  18. django中models的filter过滤方法
  19. CSS3 图片扫光/辉光
  20. Ubuntu 14.04 安装Draftsight

热门文章

  1. Flink集成Iceberg在同程艺龙的实践
  2. 边缘计算在天猫精灵云应用上的落地实践
  3. 创意总监分享:我是如何做一款手游地图的
  4. 视觉、概念、故事——角色设计三原色
  5. The world at your fingertips — 天涯明月刀幕后23(海战)
  6. 不悲观-不emo-永远保持正能量——21年末,去掉所有的不开心
  7. /dev/null 2>1 详解
  8. kill -HUP 什么意思?
  9. 创建自定义地理(坐标)变换
  10. noi.ac NA529 【神树的矩阵】