首页 > 数据库 >Jedis与RedisTemplate的区别

Jedis与RedisTemplate的区别

时间:2023-04-17 17:22:41浏览次数:48  
标签:String 区别 spring redis Jedis StringRedisTemplate RedisTemplate

Jedis与RedisTemplate的区别:

  • JedisRedis官方推荐的、面向Java的操作Redis的客户端,可以用JedisPool来获得连接进行get、set、del等操作相对简单,
  • RedisTemplateSpringDataRedis中对JedisApi的高度封装。

SpringDataRedis相对于Jedis来说,可以方便地更换RedisJava客户端,还比Jedis多了自动管理连接池的特性,方便与其他Spring框架进行搭配使用,如:SpringCache

redisTemplatestringRedisTemplate的区别

  • 第一点,StringRedisTemplate继承了RedisTemplate
  • 第二点,RedisTemplate是一个泛型类,而StringRedisTemplate则不是。
  • 第三点,StringRedisTemplate只能对key=Stringvalue=String的键值对进行操作,
    RedisTemplate可以对任何类型的key-value键值对操作。
  • 第四点,序列化的方式不同,但最终都是得到了一个字节数组,殊途同归。
    • StringRedisTemplate使用的是StringRedisSerializer类;
    • RedisTemplate使用的是JdkSerializationRedisSerializer类。
    • 反序列化,则是一个得到String,一个得到Object

小结:
打开StringRedisTemplateRedisTemplate的源码,会发现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=

标签:String,区别,spring,redis,Jedis,StringRedisTemplate,RedisTemplate
From: https://www.cnblogs.com/fuqian/p/17326507.html

相关文章

  • GCP-Bigquery- IFNULL() 和 NULLIF() 的区别和例子
    NULLIF(expr,expr_to_match)BigQueryNULLIF()DescriptionNULLisreturnedifexpr=expr_to_matchistrue,otherwise,exprisreturned.exprandexpr_to_matchmustbeimplicitlycoercibletoacommonsupertypeandcomparable.如果2个结果相同,返回null值,否则返......
  • CSS引入方式及link和@import的区别
    1.概述1.1说明在项目开发中,我们经常使用css样式使页面丰富多彩,编写过程中,CSS有四种引入方式。 2.CSS引入方式2.1 引入方式一:内联样式内联样式(行内样式):直接在HTML标签中的style属性中添加CSS<divstyle="width:200px;height:200px;background:red;"></div>内联......
  • network 路由器和交换机的区别
    目录network路由器和交换机的区别如果在公司内部搭建一个网络,应该使用路由器还是交换机?network路由器和交换机的区别路由器和交换机是网络中两个不同的设备,它们的功能和作用有所不同,主要区别如下:工作层次不同:交换机主要工作在OSI模型的第二层,即数据链路层,它通过MAC地址来转......
  • 关于增值业务和电信运营区别的对话
    文佳-买卖网站频道说:好青润说:好。文佳-买卖网站频道说:忙吗》?青润说:呵呵,今天还行。明天回老家一趟,下周一就到北京了。文佳-买卖网站频道说: 你现在是那家公司啊?青润说:没有公司。呵呵文佳-买卖网站频道说:?自己当老板了//还是政......
  • sha256 和hamc-sha256区别
    签名哈希函数SHA-256:SHA-256是全称为SecureHashAlgorithm256(安全散列算法256)的缩写。SHA-256可以将任意长度的数据计算成一个长度为256位的哈希值,在数字签名中得到广泛应用。SHA-512:SHA-512是SHA-256的加强版,可以生成更长、更不易被碰撞的消息摘要。在一些对于安全......
  • JS中Map、WeakMap和Object的区别
    JavaScript中的Map、WeakMap和Object都是用于存储键值对的数据结构:1.Map:Map是一种新的数据结构,它允许使用任何数据类型(包括对象和基本数据类型)作为键。Map的一些特性包括:-保持键的插入顺序:当遍历Map时,键值对会按照插入顺序返回。-键可以是任意类型:与Object不同,Map的键可以......
  • http GET和POST的区别
    1、幂等性:由于GET是读,POST是写,所以GET是幂等的,POST不是幂等的;由于GET是读,POST是写,所以用浏览器打开网页会发送GET请求,想要POST打开网页要用form标签。由于GET是读,POST是写,所以GET打开的页面刷新是无害的,POST打开的页面刷新需要确认。由于GET是读,POS......
  • jquery中prop()方法和attr()方法的区别
    jquery1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值。官方例举的例子感觉和attr()差不多,也不知道有什么区别,既然有了prop()这个新方法,不可能没用吧,那什么时候该用attr(),什么时候该用prop()呢?大家都知道有的浏览器只要写dis......
  • [云原生]K8S 中 Ingress 和 Service 的区别?
    K8SIngress和Service的作用?Kubernetes中的Ingress和Service都是用于构建和管理应用程序的网络服务的重要组件,两者的作用不同。Service:是Kubernetes中一个抽象的概念,用于定义一组Pod的访问方式和网络访问规则。Service通常用于在内部网络中提供可靠的负载均衡机制,如将服务......
  • FBV和CBV的区别(源码分析)
    FBV和CBV源码分析FBV直接调用user方法执行业务代码CBV相当于在FBV上面封装了一层fromdjango.contribimportadminfromdjango.urlsimportpathfromapp01importviewsurlpatterns=[path('users/',views.UserView.as_view()),]fromdjango.viewsimport......