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序列化的方式。