Post

Redis cmd

Redis CMD

1. String 类型

常用命令

命令 解释
SET key value 设置键 key的值为 value
GET key 获取键 key的值
SETNX key value 当键 key不存在时,设置其值为 value
SETEX key seconds value 设置键 key的值,并设置过期时间为 seconds
PSETEX key milliseconds value 设置键 key的值,并设置过期时间为毫秒
INCR key 将键 key的值加 1(值必须为整数)
DECR key 将键 key的值减 1
INCRBY key increment 将键 key的值增加 increment
DECRBY key decrement 将键 key的值减少 decrement
GETSET key value 设置键 key的新值为 value,并返回其旧值
MSET key value [key value ...] 同时设置多个键值对
MGET key [key ...] 获取多个键的值
STRLEN key 获取键 key的值的长度
APPEND key value value追加到键 key的值后面

例子

1
2
3
4
5
6
7
SET user:1:name "Alice"         # 设置用户 1 的姓名为 Alice
INCR user:1:age                 # 将用户 1 的年龄加 1(假设初始值为 0)
GET user:1:age                  # 获取用户 1 的年龄
APPEND user:1:name " Johnson"   # 将 " Johnson" 追加到姓名的末尾
GET user:1:name                 # 获取用户 1 的完整姓名
MSET user:2:name "Bob" user:3:name "Charlie"  # 一次性设置多个键值对
MGET user:1:name user:2:name    # 获取多个键的值

2. Hash 类型

常用命令

命令 解释
HSET key field value 设置键 key中字段 field的值为 value
HGET key field 获取键 key中字段 field的值
HMSET key field value [field value ...] 同时设置多个字段的值(Redis 4.0 后被 HSET代替)
HMGET key field [field ...] 获取键 key中一个或多个字段的值
HINCRBY key field increment 将键 key中字段 field的值增加 increment
HINCRBYFLOAT key field increment 将键 key中字段 field的值增加浮点数 increment
HDEL key field [field ...] 删除键 key中的一个或多个字段
HEXISTS key field 检查键 key中是否存在字段 field
HLEN key 获取键 key中字段的数量
HKEYS key 获取键 key中所有字段名
HVALS key 获取键 key中所有字段值
HGETALL key 获取键 key中所有字段和值

例子

1
2
3
4
5
6
7
HSET user:1 name "Alice" age 25           # 设置用户 1 的姓名为 Alice,年龄为 25
HGET user:1 name                         # 获取用户 1 的姓名
HINCRBY user:1 age 5                     # 将用户 1 的年龄增加 5
HGETALL user:1                           # 获取用户 1 的所有信息
HDEL user:1 age                          # 删除用户 1 的年龄字段
HKEYS user:1                             # 获取用户 1 的所有字段名
HVALS user:1                             # 获取用户 1 的所有字段值

3. List 类型

常用命令

命令 解释
LPUSH key value [value ...] 将值 value插入到列表 key的头部
RPUSH key value [value ...] 将值 value插入到列表 key的尾部
LPOP key 移除并返回列表 key的头部元素
RPOP key 移除并返回列表 key的尾部元素
BLPOP key [key ...] timeout 阻塞式移除并返回列表 key的头部元素,或超时返回 nil
BRPOP key [key ...] timeout 阻塞式移除并返回列表 key的尾部元素,或超时返回 nil
LRANGE key start stop 获取列表 key中从索引 startstop的所有元素
LLEN key 获取列表 key的长度
LREM key count value 从列表 key中移除最多 count个值为 value的元素
LINDEX key index 获取列表 key中索引为 index的元素
LSET key index value 设置列表 key中索引为 index的元素值为 value
LTRIM key start stop 修剪列表 key,只保留从索引 startstop的元素

例子

1
2
3
4
5
LPUSH tasks "task1" "task2"          # 插入任务到列表头部
RPUSH tasks "task3"                 # 插入任务到列表尾部
LLEN tasks                          # 获取任务列表的长度
LRANGE tasks 0 -1                   # 获取所有任务
LPOP tasks                          # 移除并返回列表头部任务

4. Set 类型

常用命令

命令 解释
SADD key value [value ...] 将一个或多个值 value添加到集合 key
SMEMBERS key 获取集合 key中的所有元素
SREM key value [value ...] 从集合 key中移除一个或多个值 value
SCARD key 获取集合 key中元素的数量
SISMEMBER key value 检查值 value是否存在于集合 key
SRANDMEMBER key [count] 随机返回集合中的一个或多个元素
SPOP key [count] 随机移除集合中的一个或多个元素,并返回它们
SDIFF key [key ...] 返回多个集合的差集
SINTER key [key ...] 返回多个集合的交集
SUNION key [key ...] 返回多个集合的并集

例子

1
2
3
4
5
SADD tags "tag1" "tag2" "tag3"      # 添加标签到集合
SMEMBERS tags                      # 获取集合中的所有标签
SISMEMBER tags "tag1"              # 检查 "tag1" 是否存在
SREM tags "tag2"                   # 从集合中移除 "tag2"
SUNION tags other_tags             # 获取两个集合的并集

5. Sorted Set 类型

常用命令

命令 解释
ZADD key score member [score member ...] 将一个或多个成员及其分数添加到有序集合 key
ZRANGE key start stop [WITHSCORES] 返回集合中从索引 startstop的成员,按分数排序
ZREVRANGE key start stop [WITHSCORES] 返回集合中从索引 startstop的成员,按分数倒序排序
ZRANK key member 返回成员 member在集合中的排名(按分数从小到大)
ZREVRANK key member 返回成员 member在集合中的排名(按分数从大到小)
ZSCORE key member 返回成员 member的分数
ZINCRBY key increment member 增加成员 member的分数 increment
ZREM key member [member ...] 从集合中移除一个或多个成员

例子

1
2
3
4
5
ZADD leaderboard 100 "Alice"       # 添加成员 Alice,分数为 100
ZADD leaderboard 200 "Bob"         # 添加成员 Bob,分数为 200
ZRANGE leaderboard 0 -1 WITHSCORES # 获取所有成员及其分数
ZINCRBY leaderboard 50 "Alice"     # 增加 Alice 的分数 50
ZREVRANGE leaderboard 0 0          # 获取分数最高的成员
This post is licensed under CC BY 4.0 by the author.