Spring Boot集成Redis缓存之RedisTemplate的方式
前言
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的方式相关推荐
- Spring Boot集成Redis缓存之模拟高并发场景处理
前言 同样我们以上一篇文章为例子,搭建好环境之后,我欧美可以模拟高并发场景下,我们的缓存效率怎么样,到底能不能解决我们实际项目中的缓存问题.也就是如何解决缓存穿透? Spring Boot集成Redi ...
- Spring Boot 集成 Redis 缓存
Spring Boot 集成 Redis 缓存 在此章,我们将 SpringBoot 集成 Redis 缓存,Redis是一个开源的,基于内存的数据结构存储,可以用作数据库.缓存和消息代理,在本章仅讲 ...
- Spring Boot集成Redis缓存之注解方式
首先还是加入依赖Jar pom.xml中加入依赖 <!-- 加载spring boot redis 包 --><dependency><groupId>org.sp ...
- Linux 安装Redis-6.2.5,配置及使用(RDB与AOF持久化、sentinel机制、主从复制、Spring Boot 集成 Redis)
CentOS 7 安装Redis-6.2.5版本 Redis采用的是基于内存的单进程 单线程模型 的KV数据库,由C语言编写.官方提供的数据是可以达到100000+的qps 应用场景: 令牌(Toke ...
- Spring Boot 结合 Redis 缓存
Redis官网: 中:http://www.redis.cn/ 外:https://redis.io/ redis下载和安装 Redis官方并没有提供Redis的Windows版本,这里使用微软提供的 ...
- Spring boot - 整合 Redis缓存(上)
一.配置Pom文件 在使用spring boot 2.0整合redis时遇到了好多问题,网上很多例子都是1.x版本的.故2.0没有折腾好所以将2.0降到了1.5.降级后由于thymeleaf版本也会从 ...
- Spring Boot集成Redis实现缓存
前言 在此章,我们将 SpringBoot 集成 Redis缓存,Redis是一个开源的,基于内存的数据结构存储,可以用作数据库.缓存和消息代理,在本章仅讲解缓存集成.一键获取源码地址 准备工作 当前 ...
- 【第二十三篇】Spring Boot集成redis
1.1 简介 REmote DIctionary Server(Redis)是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C语言 ...
- Spring Boot 集成 本地缓存Guava框架
Spring Boot 作为主流微服务框架,拥有成熟的社区生态.市场应用广泛,为了方便大家,整理了一个基于spring boot的常用中间件快速集成入门系列手册,涉及RPC.缓存.消息队列.分库分表. ...
最新文章
- linux内核SMP负载均衡浅析
- 使用R构建随机森林回归模型(Random Forest Regressor)
- Java 统计字母个数
- VMware网络配置详解
- 【AC Saber】归并排序
- 请MM吃饭之工厂模式实现
- JavaWeb中的乱码解决方法总结
- 二进制信号量,互斥信号和计数信号量的区别
- CF1004F Sonya and Bitwise OR
- 明晚8点直播丨经典知识库:深入解析Oracle检查点
- 虚拟打印机可以设置默认保存路径吗
- 惠普电脑怎么用access_惠普笔记本电脑怎么分区
- 英语学习详细笔记(五)WH问句、祈使句、感叹句
- linux bin目录在哪,Linux 基础知识 /bin,/sbin,/usr/sbin,/usr/bin 目录 区别详解
- 国外广告联盟哪个好,六个高知名度平台
- 动静兼济总相宜——Java与.NET之外的语言视界
- win10需要修复计算机,Win10开机蓝屏,显示“你的电脑/设备需要修复”怎么办?答案来了...
- 通过银行卡号获取所属银行
- html中切角文本框,css实现切角效果
- Linux下压缩的压缩命令
热门文章
- 信息学奥赛一本通 1919:【02NOIP普及组】选数 | 洛谷 P1036 [NOIP2002 普及组] 选数
- 数列分块入门 8(LibreOj-6284)
- 矩阵中不重复的元素(51Nod-1024)
- 排队接水(信息学奥赛一本通-T1319)
- python怎么运行丘比特之箭_test
- win7系统定时删除数据的批处理命令_使用bat批处理命令清理windows7系统垃圾文件...
- OpenGL:freeglut ERROR: Function <glutCreateWindow> called without first calling ‘glutInit‘.
- STM32那点事(3)_中断(下)
- flask出现错误:cannot import name ‘ContextVar‘
- jquery获取radio的值,a标签传值