SpringDataRedis基础(1):RedisTemplate操作
1、RedisTemplate简介
1.1、简介
Spring封装了RedisTemplate对象来进⾏对Redis的各种操作,它⽀持所有的Redis原⽣的api。RedisTemplate位于spring-data-redis包下,RedisTemplate源码类:
public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperations<K, V>, BeanClassLoaderAware { ............................
}
【注意ReidsTemplate中的K和V】:
(1)K:在RedisTemplate模板中的K的类型(通常为String);
(2)V:在RedisTemplate模板中的K的类型Redis value的类型;
(3)如果没特殊情况,切勿定义成RedisTemplate<Object, Object>,否则根据⾥⽒替换原则,使⽤的
时候会造成类型错误。
1.2、RedisTemplate中的数据结构
【RedisTemplate中定义了五种数据结构操作】:
(1)redisTemplate.opsForValue(); //操作字符串;
(2)redisTemplate.opsForHash(); //操作hash;
(3)redisTemplate.opsForList();//操作list;
(4)redisTemplate.opsForSet();//操作set;
(5)redisTemplate.opsForZSet();//操作有序set;
【ReidsTemplate中的五种结构与java对⽐】:
(1)String:等同于java中的,Map<String,String>。
(2)list:等同于java中的Map<String,List<String>>。
(3)set:等同于java中的Map<String,Set<String>>。
(4)sort_set:可排序的set。
(5)hash:等同于java中的:`Map<String,Map<String,String>>。
1.3、BoundKeyOperations
提供了对key的“bound”(绑定)便捷化操作API,可以通过bound封装指定的key,然后进⾏⼀系列的操作⽽⽆须“显式”的再次指定Key,即BoundKeyOperations:
(1)BoundValueOperations对字符串操作;
(2)BoundSetOperations对set操作;
(3)BoundListOperations;
(4)BoundZSetOperations;
(5)BoundHashOperations;
1.4、ReidsTemplate的序列化
针对数据的“序列化/反序列化”,提供了多种可选择策略(RedisSerializer);当我们的数据存放到Reids的时候,键K和值V都是通过Spring提供的Serializer序列化到数据库。ReidsTemplate默认使⽤的序列化是JdkSerializationRedisSerializer,⽽StringReidsTemplate的默认使⽤序列化是StringRedisSerializer。
(1)JdkSerializationRedisSerializer:POJO对象的存取场景,使⽤JDK本⾝序列化机制,将pojo类通过
ObjectInputStream/ObjectOutputStream进⾏序列化操作,最终redis-server中将存储字节序列。是⽬前最常⽤的序列化策略。
(2)StringRedisSerializer:Key或者value为字符串的场景,根据指定的charset对数据的字节序列编码成string,是“new
String(bytes, charset)”和“Bytes(charset)”的直接封装。是最轻量级和⾼效的策略。
(3)JacksonJsonRedisSerializer:jackson-json⼯具提供了javabean与json之间的转换能⼒,可以将pojo实例序列化成json格式存储在redis中,也可以将json格式的数据转换成pojo实例。因为jackson⼯具在序列化和反序列化时,需要明确指定Class类型,因此此策略封装起来稍微复杂。【需要jackson-mapper-asl⼯具⽀持】
(4)OxmSerializer:提供了将javabean与xml之间的转换能⼒,⽬前可⽤的三⽅⽀持包括jaxb,apache-xmlbeans;redis存储的数据将是xml⼯具。不过使⽤此策略,编程将会有些难度,⽽且效率最低;不建议使⽤。【需要spring-oxm模块的⽀持】
redis支持的五种数据类型【注意】如果你的数据需要被第三⽅⼯具解析,那么数据应该使⽤StringRedisSerializer⽽不是JdkSerializationRedisSerializer。
1.5、Key的存活周期
2、RedisTemplate操作
2.1、基本配置信息
【pom⽂件】
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
【l⽂件配置】
spring:
redis:
host: 192.168.2.10 #redis主机
port: 6379 #默认连接端⼝为6379
password: #默认密码为空
database: 0 #默认redis数据库为db0
2.2、
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论