大部分的用户都喜欢用RedisTemplate,它相应的包是org.springframework.data.redis.core。该模板实际是Redis模块的核心类,因为它的功能丰富。模板为Redis交互提供了高级抽象。虽然RedisConnection提供接受和返回二进制值(字节数组)的低级方法,但该模板可以处理序列化和连接管理,使得用户不需要处理太多的细节。
此外,模板提供了操作视图(按照Redis命令参考分组),它们提供了丰富的、现成的接口用于对特定类型或者特定键的操作(通过KeyBound接口),如下所述:
接口 描述
Key类型操作
ValueOperations:操作Redis String(或者Value)类型数据
ListOperations:操作Redis List类型数据
SetOperations:操作Redis Set类型数据
ZSetOperations:操作Redis ZSet(或者Sorted Set)类型数据
HashOperations:操作Redis Hash类型数据
HyperLogLogOperations:操作Redis HyperLogLog类型数据,比如:pfadd,pfcount,…
GeoOperations:操作Redis Geospatial类型数据,比如GEOADD,GEORADIUS,…)
Key绑定操作
BoundValueOperations:Redis字符串(或值)键绑定操作
BoundListOperations:Redis列表键绑定操作
BoundSetOperations:Redis Set键绑定操作
BoundZSetOperations:Redis ZSet(或Sorted Set)键绑定操作
BoundHashOperations:Redis Hash键绑定操作
BoundGeoOperations:Redis Geospatial 键绑定操作
方法 子API接口 描述
opsForValue() ValueOperations 描述具有简单值的条目
opsForList() ListOperations 操作具有list值的条目
opsForSet() SetOperations 操作具有set值的条目
opsForZSet() ZSetOperations 操作具有ZSet值(排序的set)的条目
opsForHash() HashOperations 操作具有hash值的条目
boundValueOps(K) BoundValueOperations 以绑定指定key的方式,操作具有简单值的条目
boundListOps(K) BoundListOperations 以绑定指定key的方式,操作具有list的条目
boundSetOps(K) BoundSetOperations 以绑定指定key的方式,操作具有set的条目
boundZSet(K) BoundZSetOperations 以绑定指定key的方式,操作具有ZSet(排序的set)的条目
boundHashOps(K) BoundHashOperations 以绑定指定key的方式,操作具有hash值的条目
ps:一旦经过配置,该模板就是线程安全的,它可以被多个实例重复使用。
开箱即用,RedisTemplate使用了基于Java的串行器来进行大部分的操作。这就意味着,任何对象通过模板的读写都会通过Java来进行序列化/反序列化。该模板的序列化机制改变起来也很容易,并且Redis模块在org.springframework.data.redis.serializer包中提供了多种可用的实现,详情请参考Serializers。你也可以通过设置enableDefaultSerializer属性为false,将其他的序列化实现都设置成null,并将RedisTemplate和原生的字节数组一起使用。注意该模板的key不允许为null值,除非底层序列化程序可以接受。