前言

Spring Boot 集成Redis,将自动配置 RedisTemplate,在需要使用的类中注入RedisTemplate的bean即可使用

@Autowired
private  RedisTemplate<String,  String>  redisTemplate;
@Autowired
private  RedisTemplate<Object,  Object>  redisTemplate;

注意: spring boot 帮我们注入的 redisTemplate 类,泛型里面只能写以上两种

1、在 pom.xml 中配置相关的 jar 依赖

<!--  加载spring boot redis 包  -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2、application.properties 中配置Redis连接信息

#配置redis
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=192.168.150.131
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=5000
配置了上面的步骤,Spring Boot 将自动配置 RedisTemplate,在需要使用的类中注入RedisTemplate的bean即可使用了。

3、测试RedisTemplate是否已经集成

下面我们来测试一下String字符串类型,看看我们是否已经集成了Redis

@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {@Autowiredprivate RedisTemplate redisTemplate;//插入一个字符串:opsForValue(); 操作字符串@Testpublic void testRedisOne(){//1、更改序列化方式(方便查看Redis中存入的数据)RedisSerializer<String> stringSerializer = new StringRedisSerializer();redisTemplate.setKeySerializer(stringSerializer);redisTemplate.setValueSerializer(stringSerializer);//2、向Redis中添加String类型数据类型redisTemplate.opsForValue().set("name","IT");//3、输出结果Object name = redisTemplate.opsForValue().get("name");System.out.println("结果为:"+name);}//插入多个字符串:opsForValue(); 操作字符串@Testpublic void testRedisTwo(){//1、更改序列化方式(方便查看Redis中存入的数据)RedisSerializer<String> stringSerializer = new StringRedisSerializer();redisTemplate.setKeySerializer(stringSerializer);redisTemplate.setValueSerializer(stringSerializer);//2、向Redis中添加String类型数据Map<String,String> maps = new HashMap<>();maps.put("name1","IT1");maps.put("name2","IT2");maps.put("name3","IT3");redisTemplate.opsForValue().multiSet(maps);//3、输出结果List<String> keys = new ArrayList<>();keys.add("name1");keys.add("name2");keys.add("name3");List multiGet = redisTemplate.opsForValue().multiGet(keys);System.out.println("结果为:"+multiGet);}
}
结果为:[IT1, IT2, IT3]

4、创建实体类、必须序列化

@Data
public class User implements Serializable {private Integer id;private String name;
}

5、业务层实现类代码(查询一个List集合操作)

@Service
public class UserServiceImpl implements UserService {@AutowiredUserDao userDao;//注入spring boot 自动配置好的RedisTemplate@Autowiredprivate RedisTemplate<Object,Object> redisTemplate;@Overridepublic List<User> findAll() {//1、设置key字符串的序列化器RedisSerializer redisSerializer = new StringRedisSerializer();redisTemplate.setKeySerializer(redisSerializer);//2、查询Redis缓存List<User> userList = (List<User>) redisTemplate.opsForValue().get("allUsers");if(null == userList){System.out.println("查询数据库.......");//缓存为空,查询一遍数据库userList = userDao.findAll();//把查询出来的数据放入Redis中redisTemplate.opsForValue().set("allUsers",userList);}else{System.out.println("查询Redis中的缓存.......");}return userList;}
}

补充说明

如果使用RedisTemplate需要更改序列化方式

RedisSerializer<String> stringSerializer = new StringRedisSerializer();template.setKeySerializer(stringSerializer );template.setValueSerializer(stringSerializer );template.setHashKeySerializer(stringSerializer );template.setHashValueSerializer(stringSerializer );

客户端常用操作:

查看所有key值:keys *
删除指定索引的值:del key
清空整个 Redis 服务器的数据:flushall
清空当前库中的所有 key:flushdb

Spring Boot集成Redis缓存之RedisTemplate的方式相关推荐

  1. Spring Boot集成Redis缓存之模拟高并发场景处理

    前言 同样我们以上一篇文章为例子,搭建好环境之后,我欧美可以模拟高并发场景下,我们的缓存效率怎么样,到底能不能解决我们实际项目中的缓存问题.也就是如何解决缓存穿透? Spring Boot集成Redi ...

  2. Spring Boot 集成 Redis 缓存

    Spring Boot 集成 Redis 缓存 在此章,我们将 SpringBoot 集成 Redis 缓存,Redis是一个开源的,基于内存的数据结构存储,可以用作数据库.缓存和消息代理,在本章仅讲 ...

  3. Spring Boot集成Redis缓存之注解方式

    首先还是加入依赖Jar pom.xml中加入依赖 <!-- 加载spring boot redis 包 --><dependency><groupId>org.sp ...

  4. Linux 安装Redis-6.2.5,配置及使用(RDB与AOF持久化、sentinel机制、主从复制、Spring Boot 集成 Redis)

    CentOS 7 安装Redis-6.2.5版本 Redis采用的是基于内存的单进程 单线程模型 的KV数据库,由C语言编写.官方提供的数据是可以达到100000+的qps 应用场景: 令牌(Toke ...

  5. Spring Boot 结合 Redis 缓存

    Redis官网: 中:http://www.redis.cn/ 外:https://redis.io/ redis下载和安装 Redis官方并没有提供Redis的Windows版本,这里使用微软提供的 ...

  6. Spring boot - 整合 Redis缓存(上)

    一.配置Pom文件 在使用spring boot 2.0整合redis时遇到了好多问题,网上很多例子都是1.x版本的.故2.0没有折腾好所以将2.0降到了1.5.降级后由于thymeleaf版本也会从 ...

  7. Spring Boot集成Redis实现缓存

    前言 在此章,我们将 SpringBoot 集成 Redis缓存,Redis是一个开源的,基于内存的数据结构存储,可以用作数据库.缓存和消息代理,在本章仅讲解缓存集成.一键获取源码地址 准备工作 当前 ...

  8. 【第二十三篇】Spring Boot集成redis

    1.1 简介 REmote DIctionary Server(Redis)是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C语言 ...

  9. Spring Boot 集成 本地缓存Guava框架

    Spring Boot 作为主流微服务框架,拥有成熟的社区生态.市场应用广泛,为了方便大家,整理了一个基于spring boot的常用中间件快速集成入门系列手册,涉及RPC.缓存.消息队列.分库分表. ...

最新文章

  1. linux内核SMP负载均衡浅析
  2. 使用R构建随机森林回归模型(Random Forest Regressor)
  3. Java 统计字母个数
  4. VMware网络配置详解
  5. 【AC Saber】归并排序
  6. 请MM吃饭之工厂模式实现
  7. JavaWeb中的乱码解决方法总结
  8. 二进制信号量,互斥信号和计数信号量的区别
  9. CF1004F Sonya and Bitwise OR
  10. 明晚8点直播丨经典知识库:深入解析Oracle检查点
  11. 虚拟打印机可以设置默认保存路径吗
  12. 惠普电脑怎么用access_惠普笔记本电脑怎么分区
  13. 英语学习详细笔记(五)WH问句、祈使句、感叹句
  14. linux bin目录在哪,Linux 基础知识 /bin,/sbin,/usr/sbin,/usr/bin 目录 区别详解
  15. 国外广告联盟哪个好,六个高知名度平台
  16. 动静兼济总相宜——Java与.NET之外的语言视界
  17. win10需要修复计算机,Win10开机蓝屏,显示“你的电脑/设备需要修复”怎么办?答案来了...
  18. 通过银行卡号获取所属银行
  19. html中切角文本框,css实现切角效果
  20. Linux下压缩的压缩命令

热门文章

  1. 信息学奥赛一本通 1919:【02NOIP普及组】选数 | 洛谷 P1036 [NOIP2002 普及组] 选数
  2. 数列分块入门 8(LibreOj-6284)
  3. 矩阵中不重复的元素(51Nod-1024)
  4. 排队接水(信息学奥赛一本通-T1319)
  5. python怎么运行丘比特之箭_test
  6. win7系统定时删除数据的批处理命令_使用bat批处理命令清理windows7系统垃圾文件...
  7. OpenGL:freeglut ERROR: Function <glutCreateWindow> called without first calling ‘glutInit‘.
  8. STM32那点事(3)_中断(下)
  9. flask出现错误:cannot import name ‘ContextVar‘
  10. jquery获取radio的值,a标签传值