Redis数据结构
2021-07-10 本文已影响0人
蓝梅
一、结构图

二数据结构详解
1.String结构
这种结构是我们最常用的,一个key对应一个value,很多一些对象也可以序列化后存入;
使用场景:
(1)单值缓存 set、mset等命令
(2)原子数量加减 incr、decr、incrby、decrby 等命令
(3)分布式锁 setnx
2.Hash结构
本身就是一种键值对结构
使用场景:
(1)缓存对象,对象类型作为key,字段+id作为field,值作为value
(2)购物车场景,用户id为key,商品id为field,数量为value
优点:
(1)同类数据归类整合存储,方便管理
(2)相比String消耗内存CPU更小
(3)相比String存储更节省空间
缺点:
(1)过期功能不能使用在field上,只能使用在key上
(2)Redis集群架构下不适合大规模使用,容易出现数据分布问题
3.List结构
说白了也就是双端链表结构,是有序的,value可以重复,两端都可以拿取或者插入数据
使用场景:
(1)常用的数据结构,栈、队列、阻塞队列
(2)微博这种时间轴消息结构
4.Set结构
无序集合,value不可以重复,支持集合间的操作(差集、并集、交集等)
使用场景:
(1)给用户加标签
(2)抽奖
(3)点赞,收藏等
5.ZSset结构
和集合的特性差不多,不能重复;区别是这个集合是有序的,根据每个元素设置的分值来进行元素间的排序
使用场景:排行榜等