当前位置: 首页 > article >正文

Redis数据类型及使用场景

String(字符串)

Redis 最基础的数据结构,是简单的key-value 类型,key 为 String,value 可以是 String 或数字,其他结构都是在此基础上构建的。

使用场景:

        缓存功能:可缓存费时且访问频繁的查询接口数据,减少数据库压力,提高响应速度。

        计数器:如记录视频播放次数,每次访问视频时对相应的 key 的 value 值进行递增操作。

        全局 ID :可生成唯一ID,保证在分布式系统等环境下ID 的唯一性。

        共享 session:用于实现分布式 session,不同服务器节点可从Reids获取和更新用户session信息。

        限速:通过限制单位时间内用户对接口的访问次数,或限制短信等付费接口的频率(比如通过短信验证码登录),防止恶意访问和资源滥用。

最大存储量:一个 String 类型的 value 最大可以存储 512M。

Hash(哈希)

是一个 String 类型的 field 和 value 之间的映射表,Redis 的 hash 数据类型 key 对应的 value 内部存储结构为一个 HashMap,适合存储对象。

使用场景:

        用于存储用户信息、商品信息、订单信息等对象。可将对象的各个属性作为 field,属性值作为 value 存储,方便对对象的整体操作和部分属性的获取。

最大存储量:键值对个数最多为 2^32 - 1 个,即 4294967295 个。

List(列表)

基于双向链表实现,可以在列表两端进行插入(push)和弹出(pop)操作,还能获取指定范围的元素、指定索引下的元素,可充当栈和队列。

使用场景:

        用户的 url 权限:可将用户拥有的所有 url 权限存于 Redis 的List 中,方便进行权限管理和验证。

        缓存请求的数据支持高并发:对于高并发接口,先将数据缓存到 Redis 的 List 结构中,后续通过定时任务等进行异步处理和落库,提高系统的并发处理能力。

        组合成其他数据结构:通过不同的操作组合可以实现栈、队列、有限集合、消息阻塞队列等数据结构。

最大存储量:元素个数最多为 2^32 - 1 个,即 4294967295 个。

Set (集合)

与列表类似,但不允许有重复元素,内部用 HashMap 实现,只用了 HashMap 的 key 列来存储对象,元素无序,不支持通过索引下标获取元素,支持集合内的增删改查及多个集合的交集、并集、差集操作,添加、删除、查找复杂度为 O (1),能判断成员是否在集合内。

使用场景:

        tagging(标签):用于维护用户标签等,可方便地获取具有共同标签的用户,例如求用户共同爱好的标签。

        random item(生成随机数):如抽奖场景,可通过 spop 或 srandmember 命令从集合中随机获取元素。

        social Graph(社交需求):利用交集等操作实现社交关系中的共同好友等功能。

最大存储量:元素个数最多为 2^32 - 1 个,即 4294967295 个。

Zset (有序集合)

是 sorted set 的缩写,在 Set 基础上增加了权重参数 score,元素可按 score 有序排列,添加 / 修改元素时指定 score 后会自动重新排序。

使用场景:

        适用于需要排序的场景,如各种排行榜,可按照时间、播放量、获赞数等不同的 score 值进行排序展示。

最大存储量:与 Sets 类型相似,元素个数最多为 2^32 - 1 个,即 4294967295 个。

Bitmap(位图)

是一种很节约内存的数据类型。

使用场景:

        用于高效统计大量数据,如判断用户登录状态、统计用户某个月的签到次数和首次签到时间、统计两亿用户最近 7 天的签到情况及连续签到用户总数等。


http://www.kler.cn/a/554049.html

相关文章:

  • 证券交易之:OTC账号
  • 深度求索DeepSeek:AI领域的璀璨新星
  • Windows桌面系统管理5:Windows 10操作系统注册表
  • c++标准io与线程,互斥锁
  • jEasyUI 创建学校课程表
  • 区块链虚拟币资产去中心化私钥钱包开发
  • 【mysql】数据类型介绍-空间类型-空间索引
  • Lineageos 22.1(Android 15) 开机向导制作
  • 基于java新闻管理系统,推荐一款开源cms内容管理系统ruoyi-fast-cms
  • 系统设计之分布式
  • python中的循环语句
  • CAS单点登录(第7版)18.日志和审计
  • 新品!杰和科技国产化云终端VT32,实现办公“双安全”保障
  • React 首次推出原生的动画支持!
  • 阿里云k8s服务部署操作一指禅
  • 账号存活率骤降19%?2025跨境账号安全白皮书预警
  • AI赋能前端开发,提升对抗压能力
  • 解锁 AIoT 无限可能,乐鑫邀您共赴 Embedded World 2025
  • 第1章大型互联网公司的基础架构——1.6 RPC服务
  • Ubuntu22 安装多个版本的python