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 排行榜
相关推荐
lv__pf1 小时前
redis【msb 2026金三银四redis上】
数据库·redis·缓存
布莱克6052 小时前
理解数据库聚簇索引:原理、优势与适用场景
数据库·mysql
Nturmoils3 小时前
只面对一张表:KingbaseES 超表如何简化海量时序数据管理
数据库
starrocks_stella3 小时前
StarRocks 如何查询 Paimon 半结构化数据?Variant、Shredding 与 SQL 实践
数据库
这个DBA有点耶4 小时前
MySQL迁移实战:从mysqldump到专业工具的完整选型指南
数据库·mysql·dba
小白说大模型4 小时前
LLM集成数据库的幻觉治理:当AI给出的SQL建议是错的
数据库·人工智能·sql·oracle·重构·开源
spter。5 小时前
一次 Redis SETNX 的小插曲,我重新理解了原子性
前端·redis·bootstrap
zcmodeltech5 小时前
工程机械与矿山机械沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的露天开采-井下掘进-智慧矿山全场景联动方案
数据库·stm32·单片机·嵌入式硬件·制造·多分类
曹牧5 小时前
Oracle:空值排序
数据库·oracle