Redis的五大常用数据类型的使用场景

五大常用数据类型使用场景

1> String

字符串的使用空间非常大,可以结合字符串提供的命令充分发挥自己的想象力

2> hash

键值对集合,即编程语言中的Map类型。

适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值。

适用于:存储、读取、修改用户属性。也可以用Hash做表数据缓存。

3> list

链表(双向链表),增删快,提供了操作某一段元素的API。

适用于:最新消息排行、消息队列。

4> set

set集合。哈希表实现,元素不重复,为集合提供了求交集、并集、差集等操作。

适用于:共同好友;利用唯一性,统计访问网站的所有独立ip;

5> sorted set

有序集合。将Set中的元素增加一个权重参数score,元素按score有序排列。

数据插入集合时,已经进行天然排序。

适用于:排行榜;带权重的消息队列。

·

·

StringRedisTemplate与RedisTemplate的区别?

两者的关系是StringRedisTemplate继承RedisTemplate。

两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管RedisTemplate中的数据。

SDR默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略。

StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的。

RedisTemplate默认采用的是JDK的序列化策略,保存的key和value都是采用此策略序列化保存的。

总结:

当你的redis数据库里面本来存的是字符串数据、或者你要存取的数据就是字符串类型数据的时候,那么你就使用StringRedisTemplate即可,

但是如果你的数据是复杂的对象类型,而取出的时候又不想做任何的数据转换,直接从Redis里面取出一个对象,那么使用RedisTemplate是更好选择。

写这个Config类和不写有什么区别?

采用StringRedisTemplate的,不需要写Config配置类,因为Spring给他弄了序列化了,我们不需要在配置了,都是字符串;

RestTemplate是默认采用JDK的序列化的,这样不便于阅读,所以我们通过配置类去配置RestTemplate序列化的方式。

经验分享 程序员 微信小程序 职场和发展