【Redis】:Redis的数据类型
2025-01-09 18:28 Phoenix_Ou 阅读(6) 评论(0) 编辑 收藏 举报【Redis】:Redis的数据类型
redis有5种数据类型
-
String
- 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M
- 适用场景:缓存,计数
-
Hash(字典)
-
Hash的数据原理
- 所有的HashKey也是存到数组中,每个数组存一个key/value,这就可以保存多个key
-
减少redis开销,如果有过期时间,只会扫描这一个key就行,如果用id来做主键,他就会扫描这个id所有的key
-
适用场景
-
存储,读取,修改用户属性
-
和string类型比较起来,他不需要序列化和反序列化,可以直接修改里面的数据
- 主要还是根据情况来使用
-
适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去
-
-
-
List
-
他是双向链表,有序
-
适用场景
- 最新消息排行,比如朋友圈的时间线
- 消息队列
-
-
Set,哈希集合,类比HashSet
-
Set的数据原理
- Set的本质是数组+哈希表,数组存储数据,hash防止数据重复
-
-
适用场景
- 利用唯一性,统计访问网站的所有独立ip
- qq双方的共同好友
-
-
ZSet,带权值的无序集合,类比SortedSet
-
ZSet中的每个元素除了他本身的值外,还关联有一个分数(score)
- ZSet会根据元素的分数自动排序,这使得它成为一个按分数排序的集合
-
适用场景
- 排行榜,使用Redis的ZSet实现实时排行榜
- 带权重的消息队列
-
数据类型遇到的问题
-
redis的这些数据类型不能混用
-
比如我存的是list集合对象,这不能用StringGet方法去取值,不然会报错
-
WRONGTYPE Operation against a key holding the wrong kind of value
-
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架