Redis学习笔记05-五大数据类型

String(字符串)

String类似的使用场景:value除了是字符串还可以是数字,用途举例:

计数器
统计多单位的数量:uid:123666:follow 0
粉丝数
对象存储缓存

List(列表)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 2^32^ - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

首先我们列表,可以经过规则定义将其变为队列、栈、双端队列等
小结:

list实际上是一个链表,before Node after , left, right 都可以插入值

如果key不存在,则创建新的链表

如果key存在,新增内容

如果移除了所有值,空链表,也代表不存在

在两边插入或者改动值,效率最高!修改中间元素,效率相对较低

应用:

消息排队!消息队列(Lpush Rpop),栈(Lpush Lpop)

Set(集合)

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

哈希表

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

Set就是一种简化的Hash,只变动key,而value使用默认值填充。可以将一个Hash表作为一个对象进行存储,表中存放对象的信息。

Hash更适合于对象的存储,Sring更加适合字符串存储!

Zset有序集合

 zrangebyscore salary -inf +inf
1) "xiaoming"
2) "xiaohong"
3) "xiaolan"   **从小到大**

127.0.0.1:6379> zrevrange salary 0 -1
1) "xiaolan"
2) "xiaohong"
3) "xiaoming"     **从大到小**
     

应用案例:

set排序 存储班级成绩表 工资表排序!
普通消息,1.重要消息 2.带权重进行判断
排行榜应用实现,取Top N测试

版权声明:本文为cccccccc127789原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。