代码改变世界

【Redis】:Redis的数据类型

  Phoenix_Ou  阅读(6)  评论(0编辑  收藏  举报

【Redis】:Redis的数据类型

redis有5种数据类型

  1. String

    1. 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M
    2. 适用场景:缓存,计数
  2. Hash(字典)

    1. Hash的数据原理

      1. 所有的HashKey也是存到数组中,每个数组存一个key/value,这就可以保存多个key
    2. 减少redis开销,如果有过期时间,只会扫描这一个key就行,如果用id来做主键,他就会扫描这个id所有的key

    3. 适用场景

      1. 存储,读取,修改用户属性

      2. 和string类型比较起来,他不需要序列化和反序列化,可以直接修改里面的数据

        1. 主要还是根据情况来使用
      3. 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去

  3. List

    1. 他是双向链表,有序

    2. 适用场景

      1. 最新消息排行,比如朋友圈的时间线
      2. 消息队列
  4. Set,哈希集合,类比HashSet

    1. Set的数据原理

      1. Set的本质是数组+哈希表,数组存储数据,hash防止数据重复
      2. image
    2. 适用场景

      1. 利用唯一性,统计访问网站的所有独立ip
      2. qq双方的共同好友
  5. ZSet,带权值的无序集合,类比SortedSet

    1. ZSet中的每个元素除了他本身的值外,还关联有一个分数(score)

      1. ZSet会根据元素的分数自动排序,这使得它成为一个按分数排序的集合
    2. 适用场景

      1. 排行榜,使用Redis的ZSet实现实时排行榜
      2. 带权重的消息队列

数据类型遇到的问题
  1. redis的这些数据类型不能混用

    1. 比如我存的是list集合对象,这不能用StringGet方法去取值,不然会报错

      1. WRONGTYPE Operation against a key holding the wrong kind of value

相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示