redis--002

1.String 字符串

  • Redis 最基础类型,可以存字符串、数字、二进制。

  • 命令 表格

    命令 功能
    SET key value 设置
    GET key 获取
    SETNX key value 不存在才设置(分布式锁)
    SETEX key seconds value 设置 + 过期时间
    INCR / INCRBY 数字自增
    MSET / MGET 批量设置、批量获取
  • 编码:int、embstr、raw;数字用 int,短字符串 embstr,长字符串 raw。

  • 场景:缓存、计数器、验证码、分布式锁。

2.List 列表(双向链表)

  • 有序,允许重复元素,两头操作极快,中间索引遍历慢。

  • 命令 表格

    命令 功能
    LPUSH key val 左边插入
    RPUSH key val 右边插入
    LPOP / RPOP 左右弹出
    LRANGE key start end 范围查询
    LLEN key 获取长度
    BLPOP / BRPOP 阻塞弹出(消息队列)
  • 底层:quicklist(压缩列表 ziplist + 双向链表)

  • 场景:消息队列、时间线。

3.Hash 哈希

  • key‑field‑value 结构,适合对象存储。

  • 命令 表格

    命令 功能
    HSET key field val 设置字段
    HGET key field 获取单个字段
    HGETALL key 获取全部字段
    HDEL key field 删除字段
    HINCRBY 字段数字自增
  • 编码:ziplist(元素少、值短),hashtable(哈希表)。

  • 场景:存储用户对象。

4.Set 集合

  • 无序,元素不重复。

  • 命令 表格

    命令 功能
    SADD key member 添加
    SREM key member 删除
    SMEMBERS key 取出全部
    SCARD key 元素数量
    SISMEMBER 判断是否存在
    SINTER / SUNION / SDIFF 交集、并集、差集
  • 底层:intset(全数字)、hashtable。

  • 场景:好友、标签、去重。

5.SortedSet 有序集合 ZSet

  • member 唯一不重复,带 score 分数,按 score 排序;底层:跳表 SkipList + hash 表
  • 特性:可排序、元素不重复、查询速度快。

注意:member 不能重复,score 允许重复;score 相同按 member 字典序排序。

  • 常用命令 表格

    命令 功能
    ZADD key score member 添加,存在就更新 score
    ZREM key member 删除成员
    ZSCORE key member 获取分数
    ZRANK key member 升序排名(下标从 0)
    ZREVRANK 降序排名
    ZCARD 元素总数
    ZCOUNT min max 统计区间 score 数量
    ZINCRBY score 自增
    ZRANGE min max [WITHSCORES] 按排名升序取
    ZREVRANGE 按排名降序取
    ZRANGEBYSCORE 按 score 范围查询
    ZDIFF ZINTER ZUNION 差集、交集、并集

降序规则:原命令 Z 后加 REV;WITHSCORES返回同时带出分数。

  • 编码:ziplist(数量少、内容短),超过阈值切换跳表 + hash。
  • 场景:排行榜。

##6. 五种数据类型对比

表格

类型 是否可重复 是否有序 底层 典型场景
String value 可重复 无序 sds 简单动态字符串 缓存、计数器
List ✅允许重复 插入有序 quicklist 消息队列
Hash field 不重复 无序 ziplist/hashtable 对象存储
Set ❌不重复 无序 intset/hashtable 好友、去重
ZSet member 不重复 score 排序 skiplist+hash 排行榜
相关推荐
这个DBA有点耶30 分钟前
银行业市占率最高的国产数据库是谁?先搞清楚“市占率”的四种口径
数据库·程序员·架构
用户6279947182621 小时前
南大通用GBase 8a之基于审计日志的冷温热数据分析
数据库
数据库小学妹1 小时前
数据库运维五级成熟度:监控、备份、高可用怎么串起来
运维·数据库·监控
一个天蝎座的程序猿1 小时前
为了给报表提速,我把金仓KES的列存储折腾了个遍:聊聊KES的技术能力
数据库
飞越未来云城的霓虹飞猪1 小时前
AI 数据库地图:从 PostgreSQL 到向量数据库,一次看懂 AI 时代的数据底座
数据库
不像程序员的程序媛1 小时前
导出mysql数据结构
数据库·mysql
GlobalTradercrb1 小时前
独立站SEO先写博客还是先优化产品页?看站点阶段
数据库·人工智能·google·pdf·go·seo
PingCAP2 小时前
善战者无赫赫之功:消费金融核心系统的数据库选型与升级路径
数据库·分布式·架构
花间相见3 小时前
【计算基础|MySQL09】索引(下):失效与设计
数据库·后端·面试
张宇Joaquin3 小时前
Linux系统下磁盘扇区512n、512e和4kn的区别
linux·运维·数据库