Redis 常用命令

以下是关于 Redis 常用命令的总结与对比


一、String 类型命令对比

命令 功能描述 返回值说明 示例
SET 设置键值对(覆盖旧值) 成功返回 OK SET name xinping → OK
SETNX 仅当键不存在时设置值(不覆盖) 成功返回 1,失败返回 0 SETNX language "java" → 1(首次设置)
SETEX 设置键值对并指定过期时间(秒) 成功返回 OK SETEX color 60 "red" → OK(60秒后过期)
MSET 批量设置多个键值对(原子操作) 成功返回 OK MSET k1 v1 k2 v2 → OK
GET 获取键对应的字符串值 存在返回值,不存在返回 nil GET name → “xinping”
INCR 将键的整数值加 1 返回递增后的值 INCR counter → 1(从 0 开始)
APPEND 追加值到字符串末尾 返回追加后的总长度 APPEND myphone "huawei" → 6(原值长度+新增长度)

二、Hash 类型命令对比

命令 功能描述 返回值说明 示例
HSET 设置哈希字段值(覆盖旧值) 新增字段返回 1,更新返回 0 HSET user name xinping → 1
HSETNX 仅当字段不存在时设置值 成功返回 1,失败返回 0 HSETNX user age 25 → 1(字段不存在时)
HGET 获取哈希字段值 存在返回值,否则返回 nil HGET user name → “xinping”
HGETALL 获取哈希所有字段和值 返回字段值交替列表 HGETALL user → [“name”, “xinping”, “age”, “25”]
HINCRBY 对哈希字段的整数值增减 返回操作后的值 HINCRBY counter page_view 100 → 200(原值 100)

三、List 类型命令对比

命令 功能描述 返回值说明 示例
LPUSH 将元素插入列表头部 返回列表长度 LPUSH list a → 1
RPUSH 将元素插入列表尾部 返回列表长度 RPUSH list b → 2
LPOP 移除并返回列表头部元素 返回被移除元素 LPOP list → “a”
LRANGE 获取列表指定范围的元素 返回元素列表 LRANGE list 0 -1 → [“a”, “b”]
LTRIM 修剪列表,仅保留指定区间元素 成功返回 OK LTRIM list 0 1 → OK(保留前两个元素)

四、Set 类型命令对比

命令 功能描述 返回值说明 示例
SADD 向集合添加元素(自动去重) 返回新增元素数量 SADD letters a b c → 3
SREM 删除集合中的元素 返回成功删除数量 SREM letters a → 1
SINTER 返回多个集合的交集 返回交集元素列表 SINTER set1 set2 → [“a”]
SUNION 返回多个集合的并集 返回并集元素列表 SUNION set1 set2 → [“a”, “b”, “c”]

五、Sorted Set 类型命令对比

命令 功能描述 返回值说明 示例
ZADD 添加元素及分数(更新已存在元素的分数) 返回新增元素数量 ZADD rank 90 Alice → 1
ZRANGE 按分数升序返回指定区间元素 返回元素列表(可选带分数) ZRANGE rank 0 -1 WITHSCORES → [“Alice”, “90”]
ZREVRANGE 按分数降序返回指定区间元素 同上 ZREVRANGE rank 0 0 → [“Bob”](分数最高者)
ZINCRBY 增加元素的分数 返回更新后的分数 ZINCRBY rank 10 Alice → “100”

六、HyperLogLog 命令对比

命令 功能描述 返回值说明 示例
PFADD 添加元素到 HyperLogLog(自动去重) 若基数变化返回 1,否则 0 PFADD visits user1 → 1
PFCOUNT 估算基数(误差约 0.81%) 返回估算值 PFCOUNT visits → 1000(实际可能有 992~1008)
PFMERGE 合并多个 HyperLogLog 成功返回 OK PFMERGE total_visits visits1 visits2 → OK

关键区别总结

  1. SET vs SETNX

    • SET 直接覆盖旧值,SETNX 仅在键不存在时设置值。
  2. LPUSH vs RPUSH

    • LPUSH 插入列表头部,RPUSH 插入尾部。
  3. SADD vs ZADD

    • SADD 用于无序集合,ZADD 用于有序集合(需指定分数)。
  4. HyperLogLog vs Set

    • HyperLogLog 内存占用固定(~12KB),适合海量数据去重统计(允许误差);Set 精确但内存随数据增长。

通过对比和示例,可以更清晰地理解不同命令的适用场景与核心差异。实际应用中,根据数据类型(如是否需要排序、是否允许误差)选择合适的命令结构。

你可能感兴趣的:(Redis,redis)