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 中从索引 start 到 stop 的所有元素 |
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 ,只保留从索引 start 到 stop 的元素 |
例子
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] |
返回集合中从索引 start 到 stop 的成员,按分数排序 |
ZREVRANGE key start stop [WITHSCORES] |
返回集合中从索引 start 到 stop 的成员,按分数倒序排序 |
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.