Jedis与RedisTemplate的区别
Jedis与RedisTemplate的区别:
Jedis
是Redis
官方推荐的、面向Java
的操作Redis
的客户端,可以用JedisPool
来获得连接进行get、set、del
等操作相对简单,- 而
RedisTemplate
是SpringDataRedis
中对JedisApi
的高度封装。
SpringDataRedis
相对于Jedis
来说,可以方便地更换Redis
的Java
客户端,还比Jedis
多了自动管理连接池的特性,方便与其他Spring
框架进行搭配使用,如:SpringCache
。
redisTemplate
与stringRedisTemplate
的区别
- 第一点,
StringRedisTemplate
继承了RedisTemplate
。 - 第二点,
RedisTemplate
是一个泛型类,而StringRedisTemplate
则不是。 - 第三点,
StringRedisTemplate
只能对key=String
,value=String
的键值对进行操作,
RedisTemplate
可以对任何类型的key-value
键值对操作。 - 第四点,序列化的方式不同,但最终都是得到了一个字节数组,殊途同归。
StringRedisTemplate
使用的是StringRedisSerializer
类;RedisTemplate
使用的是JdkSerializationRedisSerializer
类。- 反序列化,则是一个得到
String
,一个得到Object
。
小结:
打开StringRedisTemplate
和RedisTemplate
的源码,会发现StringRedisTemplate
继承了RedisTemplate
,一般来说子类应该比父类有着更强大的功能,但此处却不是,
因为RedisTemplate
是泛型类,而在StringRedisTemplate
继承RedisTemplate
类时,则是指定了泛型的类型,两个String
。
这就直接导致了,StringRedisTemplate只能处理String-String的键值对数据,而RedisTemplate则可以处理任何类型的键值对。
源码:
- RedisTemplate源码:
public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperations<K, V>, BeanClassLoaderAware {}
- StringRedisTemplate源码:
public class StringRedisTemplate extends RedisTemplate<String, String> {}
spring redis的相关配置
spring.redis.host=
spring.redis.port=
# 连接池中最少空闲的连接数
spring.redis.jedis.pool.min-idle=
# 当连接池资源耗尽时,调用者最大的阻塞时间,超出时将抛出异常。单位:ms,默认-1,表示永不超时
spring.redis.jedis.pool.max-wait=
# 连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
spring.redis.jedis.pool.max-active=
# 连接池中最大空闲的连接数数
spring.redis.jedis.pool.max-idle=
spring.redis.database=
spring.redis.timeout=
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2022-04-17 xml中的特殊字符的转义
2022-04-17 使用DATE_SUB()函数实现网站访问量日,月,年统计