Redis 数据类型命令速查
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的值后面 |
例子
bash
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中所有字段和值 |
例子
bash
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的元素 |
例子
bash
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 ...] | 返回多个集合的并集 |
例子
bash
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 ...] | 从集合中移除一个或多个成员 |
例子
bash
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 # 获取分数最高的成员继续阅读
- 数据与原子性
- 数据与原子性
- 数据与原子性