Redis的五大数据类型
- 一个key对应一个value:
- String 字符串
- String是redis最基本的类型,一个key对应一个value;
- String类型是二进制安全的,意思是redis的string可以包含任何数据:
- 比如:jpg图片或者序列化的对象;
- 一个redis中的字符串value最多可以是512M;
- 应用场景:缓存
以下的类型都是用来处理一个key 多个value的:
- Hash 哈希,类似java里的map
- Redis hash 是一个键值对集合
- Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
- 类似于java里面的map<String,Object>
- 应用场景:缓存
- List 列表
- redis列表是简单的字符串列表,按照插入顺序排序;
- 可随意添加一个元素到列表的头部(左边)或者尾部(右边);
- 它得底层实际就是个链表
- 应用场景:最新评论,最新发布
- Set 集合
- redis的set是string类型的无序集合,它是通过HashTable实现的
- 模拟一个场景:
- 我在数据库取出100w数据,根据要求去掉重复数据:
- (有效数据,set集合中)
- 应用场景:摇奖,随机出栈
- list和set集合的区别:
- list集合是有序的,set是无序的
- list集合可以存放重复的数据 1113223344,这个字符串可以存到list里面;
- 同样的这个字符串存到set集合中是1324,表示set不能存放重复数据;
- Zset 有序集合
- redis的zset和set一样也是string类型元素的集合,且不允许重复的成员;
- 不同的是每个元素都会关联一个double类型的分数;
- redis正是通过分数来为集合中的成员进行从小到大的排序;
- zset的成员是唯一的,但分数(score)却可以重复
- 模拟一个场景:
- 我在数据库取出100w数据,根据要求去掉重复数据,并且按照从大到小的顺序输出:
*(有效数据,zset集合)- 应用场景:排行榜