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 排行榜
相关推荐
醉颜凉8 小时前
Redis网络层解析:高性能服务器架构设计与实现
redis·epoll·网络架构·i/o多路复用·事件驱动
醉颜凉8 小时前
Redis 与 Pika 对比:大容量冷热数据落盘方案与混合存储架构
redis·pika·混合存储·存储架构·冷热数据分离
SkyWalking中文站8 小时前
BanyanDB 0.11.0:新特性与升级指南
数据库
₍˄·͈༝·͈˄*₎◞ ̑̑码10 小时前
MyBatis操作数据库
数据库·mybatis
刃神太酷啦12 小时前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap
三84412 小时前
SSRF 打内网 Redis:gopher 原理与实操
redis·web安全·bootstrap·ssrf
丁丁点灯o12 小时前
Oracle中使用外键的场景及不适用外键的情况
数据库·oracle
天天进步201512 小时前
Pixelle-Video 源码解析 #18:声音克隆功能:参考音频如何影响解说效果?
数据库·音视频
youm200312 小时前
认识Redis
redis·笔记·学习
不懂的浪漫13 小时前
ToDesk 连接 Linux 后分辨率过低的解决方法
linux·运维·数据库