大家好,又见面了,我是你们的朋友全栈君。
Redis与Spring的整合一般分为spring-data-redis和jedis整合,两者的区别在于:
1.引入的依赖不同
spring-data-redis引入的是
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
jedis引入的是:
<dependency>
<groupId>jedis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
2.管理jedis实例和操作redis服务不同
spring-data-redis是通过org.springframework.data.redis.connection.jedis.JedisCon来管理,也就是通过工厂模式进行管理,再通过配置模板ben操作redis服务,这种方式代码段中存在大量与业务代码无关的模板片段代码,代码冗余、不易维护。
什么是RedisTemplate?
Spring封装了RedisTemplate对象来对redis服务进行各种操作,支持redis原生的api并提供了几个常用方法:
1.private ValueOperations<K,V>valueOps;
2.private ListOperations<K,V>listOps
3.private SetOperations<K,V>setOps
4.private ZSetOperations<K,V>zSetOps
Redis Template中定义了五种数据结构操作:
1.redisTemplate.opsForValue();//操作字符串
2.redisTemplate.opsForHash()//操作hash
3.redisTemplate.opsForList()//操作list
4.redisTemplate.opsForSet()//操作set
5.redisTemplate.opsForZSet()//操作有序Set
SpringRedisTemplate继承于RedisTemplate,两者的数据不共用,redisTemplate只负责RedisTemplate的数据,另一个也是如此。
更多详情Spring整合Redis,具体步骤
SDR(SpringDateRedis)默认采用序列化策略有两种:
1.String的序列化方式 :StringRedisTemplate默认使用(保存key和value都是使用该策略)
2.jdk的序列化方式 :RedisTemplate默认使用(保存key和value都是使用该策略)
Jedis方式:
通过redis.clients.jedis.JedisPool来管理,即通过池来管理,通过池对象来获取jedis实例,然后直接通过jedis实例来操作redis服务,剔除了与业务代码无关的冗余代码,代码相对于上面的方式更加简洁,更容易维护
Jedis使用apache commons-pool2对jedis资源池进行管理
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。