Redis常用操作

通用命令

1. KEYS <pattern>
----------------------------------
作用:根据通配符匹配,列出所有符合条件的 key。
示例:
  KEYS user:*           # 匹配所有以 user: 开头的 key
返回值:匹配的 key 列表
注意:遍历全库,性能差,**生产环境建议使用 SCAN 命令替代**

2. DEL <key> [key ...]
----------------------------------
作用:删除一个或多个指定的 key。
示例:
  DEL user:1001         # 删除 key 为 user:1001 的数据
  DEL key1 key2 key3    # 批量删除
返回值:成功删除的 key 数量

3. EXISTS <key> [key ...]
----------------------------------
作用:检查指定的 key 是否存在。
示例:
  EXISTS user:1001      # 判断 user:1001 是否存在
  EXISTS key1 key2      # 多个 key,返回存在的数量
返回值:存在的 key 数量(0 表示全部不存在)

4. EXPIRE <key> <seconds>
----------------------------------
作用:为指定的 key 设置过期时间(单位:秒)。
示例:
  EXPIRE user:1001 60   # 设置 user:1001 60 秒后过期
返回值:1 表示设置成功;0 表示 key 不存在或设置失败

5. TTL <key>
----------------------------------
作用:查看 key 剩余的过期时间(单位:秒)。
示例:
  TTL user:1001
返回值:
  - 正数:剩余秒数
  - -1:key 存在但没有设置过期时间
  - -2:key 不存在

String类型常见命令

1. SET <key> <value>
----------------------------------
作用:设置指定 key 的字符串值,如果 key 已存在则覆盖。
示例:
  SET user:1001:name "Alice"
返回值:OK(设置成功)

2. GET <key>
----------------------------------
作用:获取指定 key 的字符串值。
示例:
  GET user:1001:name
返回值:对应的字符串值,或 nil(key 不存在)

3. MSET <key1> <value1> <key2> <value2> ...
----------------------------------
作用:同时设置多个 key 的值。
示例:
  MSET a 10 b 20 c 30
返回值:OK(全部设置成功)

4. MGET <key1> <key2> ...
----------------------------------
作用:同时获取多个 key 的值。
示例:
  MGET a b c
返回值:按顺序返回对应的值,key 不存在则返回 nil

5. INCR <key>
----------------------------------
作用:将 key 的值加 1(必须是整数),初始值不存在视为 0
示例:
  INCR counter
返回值:递增后的结果(整数)

6. INCRBY <key> <increment>
----------------------------------
作用:将 key 的值增加指定的整数值。
示例:
  INCRBY score 5
返回值:递增后的结果(整数)

7. INCRBYFLOAT <key> <increment>
----------------------------------
作用:将 key 的值增加指定的浮点数值。
示例:
  INCRBYFLOAT price 1.5
返回值:递增后的结果(浮点数)

8. SETNX <key> <value>
----------------------------------
作用:当 key 不存在时设置 key 的值(NX = Not eXists)。
示例:
  SETNX lock "1"
返回值:
  - 1:设置成功(key 原本不存在)
  - 0:未设置(key 已存在)

9. SETEX <key> <seconds> <value>
----------------------------------
作用:设置 key 的值并同时指定过期时间(秒)。
示例:
  SETEX temp:code 300 "xyz123"
返回值:OK

key的层级格式

Redis 的 key 可以用 : 做分隔符(区分层级),但这只是“命名规范”,实际存储并不是按照层级结构来实现的。

举一个层级结构的例子:项目名:业务名:类型:id

Hash类型常见命令

1. HSET <key> <field> <value>
----------------------------------
作用:设置哈希表 key 中字段 field 的值。如果字段已存在则覆盖。
示例:
  HSET user:1001 name "Alice"
返回值:
  - 1:新建字段
  - 0:更新已有字段

2. HGET <key> <field>
----------------------------------
作用:获取哈希表 key 中指定字段的值。
示例:
  HGET user:1001 name
返回值:字段的值,或 nil(字段不存在)

3. HMSET <key> <field1> <value1> <field2> <value2> ...
(⚠️ Redis 4.0 起被标记为过时,推荐用 HSET 替代)
----------------------------------
作用:同时设置多个字段的值。
示例:
  HMSET user:1001 name "Alice" age 20
返回值:OK

4. HMGET <key> <field1> <field2> ...
----------------------------------
作用:同时获取多个字段的值。
示例:
  HMGET user:1001 name age
返回值:按顺序返回字段值,字段不存在返回 nil

5. HGETALL <key>
----------------------------------
作用:获取哈希表 key 中所有字段和值(键值对形式)。
示例:
  HGETALL user:1001
返回值:一个扁平数组(field1, value1, field2, value2, ...)

6. HKEYS <key>
----------------------------------
作用:获取哈希表 key 中所有字段(field)。
示例:
  HKEYS user:1001
返回值:字段列表(不包含值)

7. HVALS <key>
----------------------------------
作用:获取哈希表 key 中所有值(value)。
示例:
  HVALS user:1001
返回值:值的列表(不包含字段)

8. HINCRBY <key> <field> <increment>
----------------------------------
作用:将哈希表 key 中指定字段的整数值加上增量。
示例:
  HINCRBY user:1001 age 1
返回值:递增后的整数值

9. HSETNX <key> <field> <value>
----------------------------------
作用:仅当字段不存在时设置值(NX = Not eXists)。
示例:
  HSETNX user:1001 age 20
返回值:
  - 1:设置成功(字段不存在)
  - 0:未设置(字段已存在)

List类型常见命令

1. LPUSH <key> <value1> [value2 ...]
----------------------------------
作用:将一个或多个元素从左侧推入列表(即头部)。
示例:
  LPUSH mylist a b c     # 列表变成 [c, b, a]
返回值:操作后列表的长度

2. LPOP <key>
----------------------------------
作用:从左侧弹出(移除)并返回列表的第一个元素。
示例:
  LPOP mylist
返回值:被弹出的元素,或 nil(列表为空)

3. RPUSH <key> <value1> [value2 ...]
----------------------------------
作用:将一个或多个元素从右侧推入列表(即尾部)。
示例:
  RPUSH mylist x y z     # 列表变成 [..., x, y, z]
返回值:操作后列表的长度

4. RPOP <key>
----------------------------------
作用:从右侧弹出(移除)并返回列表的最后一个元素。
示例:
  RPOP mylist
返回值:被弹出的元素,或 nil(列表为空)

5. LRANGE <key> <start> <stop>
----------------------------------
作用:获取列表指定范围内的元素(闭区间,支持负数索引)。
示例:
  LRANGE mylist 0 2      # 获取索引 0 到 2 的元素
  LRANGE mylist 0 -1     # 获取整个列表
返回值:元素列表

6. BLPOP <key1> [key2 ...] <timeout>
----------------------------------
作用:从左侧弹出元素,若列表为空则阻塞等待,直到超时或有值。
示例:
  BLPOP mylist 5         # 最多等待 5 秒直到有元素可弹出
返回值:一个包含 [key, value] 的数组,或 nil(超时)

7. BRPOP <key1> [key2 ...] <timeout>
----------------------------------
作用:从右侧弹出元素,若列表为空则阻塞等待,直到超时或有值。
示例:
  BRPOP mylist 5
返回值:一个包含 [key, value] 的数组,或 nil(超时)

Set类型常见命令

1. SADD <key> <member1> [member2 ...]
----------------------------------
作用:向集合添加一个或多个成员(去重,不允许重复元素)。
示例:
  SADD myset a b c
返回值:成功添加的元素数量(已存在的不计入)

2. SREM <key> <member1> [member2 ...]
----------------------------------
作用:从集合中移除一个或多个指定成员。
示例:
  SREM myset a b
返回值:成功移除的成员数量

3. SCARD <key>
----------------------------------
作用:获取集合中元素的数量。
示例:
  SCARD myset
返回值:集合的大小(元素个数)

4. SISMEMBER <key> <member>
----------------------------------
作用:判断某个值是否是集合的成员。
示例:
  SISMEMBER myset a
返回值:
  - 1:是成员
  - 0:不是成员

5. SMEMBERS <key>
----------------------------------
作用:返回集合中的所有元素。
示例:
  SMEMBERS myset
返回值:元素列表(无序)

6. SINTER <key1> <key2> [...]
----------------------------------
作用:返回所有给定集合的交集。
示例:
  SINTER set1 set2
返回值:交集成员列表(仅在两个集合中都存在的元素)

7. SDIFF <key1> <key2> [...]
----------------------------------
作用:返回在 key1 中但不在其他集合中的元素(差集)。
示例:
  SDIFF set1 set2
返回值:差集成员列表(存在于 set1,但不在 set2 中)

8. SUNION <key1> <key2> [...]
----------------------------------
作用:返回所有给定集合的并集。
示例:
  SUNION set1 set2
返回值:并集成员列表(所有唯一元素)

SortedSet类型常见命令

1. ZADD <key> <score1> <member1> [score2 member2 ...]
----------------------------------
作用:向有序集合添加一个或多个成员,并设置分数。
示例:
  ZADD leaderboard 100 user1 200 user2
返回值:成功添加的新成员数量(已存在的更新分数但不计入)

2. ZREM <key> <member1> [member2 ...]
----------------------------------
作用:移除一个或多个成员。
示例:
  ZREM leaderboard user1
返回值:成功移除的成员数量

3. ZSCORE <key> <member>
----------------------------------
作用:获取指定成员的分数。
示例:
  ZSCORE leaderboard user2
返回值:分数(字符串类型),或 nil(成员不存在)

4. ZRANK <key> <member>
----------------------------------
作用:返回指定成员的排名(从小到大,0 开始)。
示例:
  ZRANK leaderboard user2
返回值:排名索引,或 nil(成员不存在)

5. ZCARD <key>
----------------------------------
作用:返回有序集合中的成员数量。
示例:
  ZCARD leaderboard
返回值:成员总数

6. ZCOUNT <key> <min> <max>
----------------------------------
作用:统计分数在指定范围内的成员数量。
示例:
  ZCOUNT leaderboard 100 200
返回值:符合条件的成员数量

7. ZINCRBY <key> <increment> <member>
----------------------------------
作用:为指定成员的分数增加指定值(可为负)。
示例:
  ZINCRBY leaderboard 10 user2
返回值:增加后的分数

8. ZRANGE <key> <start> <stop> [WITHSCORES]
----------------------------------
作用:按索引范围获取成员(从低分到高分)。
示例:
  ZRANGE leaderboard 0 2
  ZRANGE leaderboard 0 2 WITHSCORES
返回值:成员列表,或成员+分数列表(如果加了 WITHSCORES)

9. ZRANGEBYSCORE <key> <min> <max> [WITHSCORES]
----------------------------------
作用:按分数范围获取成员(可指定区间范围)。
示例:
  ZRANGEBYSCORE leaderboard 100 200
返回值:符合条件的成员列表,默认按分数升序排列

10. ZINTER <numkeys> <key1> <key2> ... [AGGREGATE SUM|MIN|MAX]
(Redis 6.2 起支持简化命令:ZINTERSTORE destination key1 key2 ...)
----------------------------------
作用:求多个有序集合的交集,可合并分数。
示例:
  ZINTER 2 zset1 zset2
返回值:交集中成员及其计算后的分数

11. ZDIFF <numkeys> <key1> <key2> ...
(Redis 6.2+ 支持)
----------------------------------
作用:返回第一个集合中存在、其余集合中不存在的成员。
示例:
  ZDIFF 2 zset1 zset2
返回值:差集成员列表(不含分数)

12. ZUNION <numkeys> <key1> <key2> ... [AGGREGATE SUM|MIN|MAX]
(Redis 6.2 起支持简化命令:ZUNIONSTORE destination key1 key2 ...)
----------------------------------
作用:求多个有序集合的并集,可合并分数。
示例:
  ZUNION 2 zset1 zset2
返回值:并集中所有成员及其合并分数
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇