spring boot——集成redis——参考转载
2022/5/26 2:20:02
本文主要是介绍spring boot——集成redis——参考转载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
原文连接:
(1)、https://blog.csdn.net/weixin_39025362/article/details/105042476?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4-105042476-blog-117926658.pc_relevant_scanpaymentv1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4-105042476-blog-117926658.pc_relevant_scanpaymentv1&utm_relevant_index=9
(2)、https://blog.csdn.net/XinhuaShuDiao/article/details/84906538
1. 先了解RedisTemplate和StringRedisTemplate之间的关系:
RedisTemplate是Spring对于Redis的封装,而StringRedisTemplate继承RedisTemplate。
两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,
RedisTemplate只能管理RedisTemplate中的数据。
StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。
RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。
2. RedisTemplate和StringRedisTemplate使用上的差别
RedisTemplate:
redisTemplate中定义了对几种常用数据结构操作:
redisTemplate.opsForList(); //操作list
redisTemplate.opsForValue(); //操作字符串
redisTemplate.opsForCluster(); //集群时使用
redisTemplate.opsForGeo(); //地理位置时使用
redisTemplate.opsForHash(); //操作hash
redisTemplate.opsForSet(); //操作set
redisTemplate.opsForZSet(); //操作有序set
- StringRedisTemplate
StringRedisTemplate中定义的5中数据结构,其实和redisTemplate一样,只是参数改成了String,
两者的使用就看大家的业务场景了,对笔者来说stringRedisTemplate也够用了
5. RedisConfig配置类,相当于配置了RedisTemplate、和StringRedisTemplate
@Configuration public class RedisConfig{ @Autowired RedisConnectionFactory redisConnectionFactory; @Bean public RedisTemplate<String, Object> functionDomainRedisTemplate() { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>(); initDomainRedisTemplate(redisTemplate, redisConnectionFactory); return redisTemplate; } /* *设置redisTemplate序列化策略,否则在使用redisTemplate的时候在redis的客户端查看会出现乱码 */ private void initDomainRedisTemplate(RedisTemplate<String, Object> redisTemplate, RedisConnectionFactory factory) { redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer()); redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer()); redisTemplate.setConnectionFactory(factory); } }
6、到这一步就可以在代码上就使用redis了,下面简单演示StringRedisTemplate方法使用,如设置过期时间600秒
//先引入StringRedisTemplate @Autowired private StringRedisTemplate stringRedisTemplate; //向redis里存入数据和设置缓存时间 stringRedisTemplate.opsForValue().set("redis", "100", 60 * 10, TimeUnit.SECONDS); //val做-1操作 stringRedisTemplate.boundValueOps("redis").increment(-1); //根据key获取缓存中的val stringRedisTemplate.opsForValue().get("redis") //val +1 stringRedisTemplate.boundValueOps("redis").increment(1); //根据key获取过期时间 stringRedisTemplate.getExpire("redis"); //根据key获取过期时间并换算成指定单位 stringRedisTemplate.getExpire("redis",TimeUnit.SECONDS); //根据key删除缓存 stringRedisTemplate.delete("redis"); //检查key是否存在,返回boolean值 stringRedisTemplate.hasKey("redis"); //向指定key中存放set集合 stringRedisTemplate.opsForSet().add("redis", "1","2","3"); //设置过期时间 stringRedisTemplate.expire("redis",1000 , TimeUnit.MILLISECONDS); //根据key查看集合中是否存在指定数据 stringRedisTemplate.opsForSet().isMember("redis", "1"); //根据key获取set集合 stringRedisTemplate.opsForSet().members("redis"); //验证有效时间 Long expire = stringRedisTemplate.boundHashOps("redis").getExpire(); System.out.println("redis有效时间:"+expire+"秒");
=====================================================================================
这篇关于spring boot——集成redis——参考转载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27数据结构与算法面试题详解及练习
- 2024-12-27网络请求面试题详解与实战
- 2024-12-27数据结构和算法面试真题详解与实战教程
- 2024-12-27网络请求面试真题解析与实战教程
- 2024-12-27数据结构和算法大厂面试真题详解与实战指南
- 2024-12-27TS大厂面试真题解析与应对策略
- 2024-12-27TS大厂面试真题详解与解析
- 2024-12-27网站安全入门:如何识别和修复漏洞
- 2024-12-27SQL注入基础教程
- 2024-12-27初学者指南:理解和修复跨域漏洞