Redis_RedisTemplate的介绍

1)Jedis与RedisTemplate的区别:

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

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

·

2)redisTemplate与stringRedisTemplate的区别

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

小结:

打开StringRedisTemplate和RedisTemplate的源码,会发现StringRedisTemplate继承了RedisTemplate,一般来说子类应该比父类有着更强大的功能,但此处却不是,

因为RedisTemplate是泛型类,而在StringRedisTemplate继承RedisTemplate类时,则是指定了泛型的类型,两个String。

这就直接导致了,StringRedisTemplate只能处理String-String的键值对数据,而RedisTemplate则可以处理任何类型的键值对

3)源码:

RedisTemplate源码:

public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperations<K, V>, BeanClassLoaderAware {}

StringRedisTemplate源码:

public class StringRedisTemplate extends RedisTemplate<String, String> {}

4)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=