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)”和“string.getBytes(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模块的支持】

【注意】如果你的数据需要被第三方工具解析,那么数据应该使用StringRedisSerializer而不是JdkSerializationRedisSerializer。

1.5、Key的存活周期

2、RedisTemplate操作

2.1、基本配置信息

【pom文件】

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

【application.yml文件配置】

spring:  
  redis:
    host: 192.168.2.10 #redis主机
    port: 6379 #默认连接端口为6379
    password: #默认密码为空
    database: 0 #默认redis数据库为db0

 2.2、

猜你喜欢

转载自blog.csdn.net/u013089490/article/details/84423854