一文搞定Redis五大数据类型及使用场景



字符串
1.1 内部编码
int:8个字节的长整型。 embstr:小于等于39个字节的字符串。 raw:大于39个字节的字符串。
1.2 使用场景
1.2.1 缓存
1.2.2 计数
值不是整数,返回错误 值是整数,返回自增后的结果 key不存在,默认键为0,返回1
1.2.3 共享Session
1.2.4 限速

2.1 内部编码
ziplist(压缩列表):当哈希类型元素个数小于hash-max-ziplist-entries配置(默认512个)同时所有值都小于hash-max-ziplist-value配置(默认64字节)时使用。ziplist使用更加紧凑的结构实现多个元素的连续存储,所以比hashtable更加节省内存。 hashtable(哈希表):当ziplist不能满足要求时,会使用hashtable。
2.2 使用场景
| id | name | age |
|---|---|---|
| 1 | Java旅途 | 18 |
hset user:1 name Java旅途 age 18
列表
3.1 内部编码
ziplist(压缩列表):当哈希类型元素个数小于list-max-ziplist-entries配置(默认512个)同时所有值都小于list-max-ziplist-value配置(默认64字节)时使用。ziplist使用更加紧凑的结构实现多个元素的连续存储,所以比hashtable更加节省内存。 linkedlist(链表):当ziplist不能满足要求时,会使用linkedlist。
3.2 使用场景
3.2.1 消息队列
3.2.2 栈
3.2.3 文章列表

集合
4.1 内部编码
intset(整数集合):当集合中的元素都是整数且元素个数小于set-max-intset-entries配置(默认512个)时,redis会选用intset来作为集合的内部实现,从而减少内存的使用。 hashtable(哈希表):当intset不能满足要求时,会使用hashtable。
4.2 使用场景
4.2.1 用户标签
给用户打标签
sadd user:1:tags tag1 tag2
给标签添加用户
sadd tag1:users user:1sadd tag2:users user:1
sinter?user:1:tags?user:2:tags
4.2.2 抽奖功能
随机获取count个元素,集合元素个数不变
srandmember key [count]随机弹出count个元素,元素从集合弹出,集合元素个数改变
spop key [count]
有序集合
5.1 内部编码
ziplist(压缩列表):当有序集合的元素个数小于list-max-ziplist-entries配置(默认128个)同时所有值都小于list-max-ziplist-value配置(默认64字节)时使用。ziplist使用更加紧凑的结构实现多个元素的连续存储,更加节省内存。 skiplist(跳跃表):当不满足ziplist的要求时,会使用skiplist。
5.2 使用场景
5.2.1 排行榜
zadd?user:article?0?a
zincrby user:article 1 a
zrevrangebyscore user:article 0 2
zrangebyscore?user:article?0?2
5.2.2 延迟消息队列

总结


更多精彩推荐
点分享 点点赞 点在看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 中共中央召开党外人士座谈会 7904042
- 2 日本附近海域发生7.5级地震 7808829
- 3 日本发布警报:预计将出现最高3米海啸 7712070
- 4 全国首艘氢电拖轮作业亮点多 7616798
- 5 课本上明太祖画像换了 7523258
- 6 中国游客遇日本地震:连滚带爬躲厕所 7428869
- 7 亚洲最大“清道夫”落户中国洋浦港 7331921
- 8 日本地震当地居民拍下自家书柜倒塌 7236634
- 9 熊猫宝宝聚餐横七竖八躺成一片 7135873
- 10 “人造太阳”何以照进现实 7044973










CSDN
