![Redis常用的数据结构](http://img.jiangsulong.com/220501/010TGO5-0.jpg)
文章插图
redis常用的数据结构有
- string
- list
- set
- zset
- hash
value可以存储json格式,数值型等 。
使用场景string使用场景一般是存储简单的键值类型 。比如用户信息,登录信息,配置信息等 。还有一种用得比较多的是string的incr/decr操作,即自增、自减操作 。调用它是原子性的,无论调用多少次,都一一计算成功 。例如需要增减库存的操作 。
尽管string的value可以存储很大,甚至500多MB的容量 。但是在性能上来说,我们见谅存储value的值不要超过1M 。
hashhash是一个键值对集合,是一个string类型的key和value的映射表,key还是key,但是value是一个键值对(key-value) 。类比于JAVA里面的 Map<String, Map<String, Object>>集合 。
使用场景比如需要有两层key的应用常见,通过删除一个key可以删除所有内容 。例如一个商品有很多规格,规格里面有不同的值 。
需要注意的是,经过测试,在性能上来说一般hash里面的第二层key,不要超过200个为佳 。尽管hash里面的key-value能达到500多MB的存储容量 。
listlist列表,它是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头(左边)或者尾部(右边),它的底层实际上是个链表 。
使用场景list可以使用左推、左拉、右推、右拉的方式 。所以你可以使用list作为集合存储,比如存储某宝商铺里面的所有商品 。
也可以用作轻量级别的队列来使用 。左推左拉、右推右拉 。
【Redis常用的数据结构】需要注意的是尽管redis可以使用推拉的队列模式,但是一定要注意场景 。因为redis的队列是一种轻量级别的,没有队列重试、队列重放机制 。消费完队列消息在redis代表已经删除了 。
setRedis的set是string类型的无序集合 。
使用场景如保存一些标签的名字 。标签的名字不可以重复,顺序是可以无序的 。
需要注意的是使用set一定不要存储大量的数据 。value的值不宜过大,并且集合数量不宜过大 。几百个集合的值,value不超过1MB为佳 。
zsetzset(sorted set有序集合),和上面的set数据类型一样,也是string类型元素的集合,但是它是有序的 。
使用场景sortset的使用场景一般是排行榜之类的场景
推荐阅读
- 如何更新win11?win11相关常见问答解答
- 网管常用工具,行走江湖,技多不压身
- 女人一夜情的常用借口
- 女人熬夜吃什么补品好,女孩子熬夜吃什么好
- 经常熬夜喝什么对身体好,经常熬夜吃什么对身体好
- 葵花盘泡水能经常喝吗,经常喝茶水能减肥吗
- 产后半年来月经正常吗
- 孕六个月脚肿正常吗?
- 怀孕后月经期少量流血?
- 常见的网络攻击方式!黑客惯用的伎俩