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