一、键(Key)操作命令
功能:管理 Redis 中的键(key),不涉及具体值类型。
-
查看所有键
bash
KEYS * # 查看所有键(生产环境慎用,可能阻塞服务) KEYS pattern # 按模式匹配键,如KEYS user:* -
检查键是否存在
bash
EXISTS key # 存在返回1,否则返回0 -
删除键
bash
DEL key1 key2 # 删除一个或多个键,返回删除成功的数量 -
设置过期时间
bash
EXPIRE key seconds # 设置键的过期时间(秒) PEXPIRE key milliseconds # 设置键的过期时间(毫秒) TTL key # 查看剩余过期时间(秒),-1表示永不过期,-2表示已过期 PERSIST key # 移除过期时间,使键永久有效 -
键重命名
bash
RENAME key newkey # 重命名键(如果newkey已存在,会覆盖) RENAMENX key newkey # 仅当newkey不存在时重命名
二、字符串(String)操作命令
功能:操作 Redis 中的字符串值,是最基本的数据类型。
-
设置值
bash
SET key value # 设置键值对 SET key value EX seconds # 设置值并指定过期时间(秒) SET key value NX # 仅当键不存在时设置(用于分布式锁) SETNX key value # 等价于SET key value NX -
获取值
bash
GET key # 获取键对应的值 MGET key1 key2 # 批量获取多个键的值 -
数值操作
bash
INCR key # 对数值类型的值加1(原子操作) DECR key # 对数值类型的值减1 INCRBY key increment # 增加指定数值 DECRBY key decrement # 减少指定数值 -
字符串拼接
bash
APPEND key value # 在原字符串末尾追加内容 STRLEN key # 获取字符串长度
三、哈希(Hash)操作命令
功能:操作键值对集合(field-value),适合存储对象。
-
设置哈希值
bash
HSET key field value # 设置哈希表中的字段值 HSETNX key field value # 仅当字段不存在时设置 HMSET key field1 value1 field2 value2 # 批量设置多个字段 -
获取哈希值
bash
HGET key field # 获取哈希表中指定字段的值 HMGET key field1 field2 # 批量获取多个字段的值 HGETALL key # 获取哈希表中所有字段和值 HKEYS key # 获取哈希表中所有字段名 HVALS key # 获取哈希表中所有值 HLEN key # 获取哈希表中字段的数量 -
判断字段是否存在
bash
HEXISTS key field # 存在返回1,否则返回0
四、列表(List)操作命令
功能:操作有序可重复的列表,支持双向插入和弹出。
-
插入元素
bash
LPUSH key value1 value2 # 从左侧(头部)插入一个或多个值 RPUSH key value1 value2 # 从右侧(尾部)插入一个或多个值 -
获取元素
bash
LRANGE key start stop # 获取列表指定范围内的元素(0表示第一个,-1表示最后一个) LINDEX key index # 获取列表中指定索引的元素 LLEN key # 获取列表长度 -
弹出元素
bash
LPOP key # 从左侧弹出一个元素 RPOP key # 从右侧弹出一个元素
五、集合(Set)操作命令
功能:操作无序且唯一的元素集合,支持交集、并集等操作。
-
添加元素
bash
SADD key member1 member2 # 向集合中添加一个或多个元素 -
获取元素
bash
SMEMBERS key # 获取集合中所有元素 SISMEMBER key member # 判断元素是否存在于集合中 SCARD key # 获取集合中元素的数量 -
集合运算
bash
SINTER key1 key2 # 获取多个集合的交集 SUNION key1 key2 # 获取多个集合的并集 SDIFF key1 key2 # 获取多个集合的差集(key1有但key2没有的元素)
六、有序集合(Sorted Set)操作命令
功能:操作有序且唯一的元素集合,每个元素关联一个分数(score)。
-
添加元素
bash
ZADD key score1 member1 score2 member2 # 向有序集合中添加元素和分数 -
获取元素
bash
ZRANGE key start stop [WITHSCORES] # 按分数从小到大获取指定范围的元素 ZREVRANGE key start stop [WITHSCORES] # 按分数从大到小获取指定范围的元素 ZSCORE key member # 获取元素的分数 ZCARD key # 获取有序集合的元素数量 -
范围操作
bash
ZRANGEBYSCORE key min max [WITHSCORES] # 获取分数在指定范围内的元素 ZCOUNT key min max # 统计分数在指定范围内的元素数量
七、发布订阅(Pub/Sub)命令
功能:实现消息的发布与订阅模式。
-
发布消息
bash
PUBLISH channel message # 向指定频道发布消息 -
订阅频道
bash
SUBSCRIBE channel1 channel2 # 订阅一个或多个频道 PSUBSCRIBE pattern1 pattern2 # 按模式订阅频道(如news.*)
八、事务命令
功能:将多个命令打包,按顺序、原子性执行。
-
开启事务
bash
MULTI # 开启事务 -
执行命令
bash
# 在MULTI后依次执行多个命令 SET key1 value1 GET key1 -
提交或取消事务
bash
EXEC # 提交事务 DISCARD # 取消事务
九、持久化命令
功能:管理 Redis 数据的持久化存储。
-
RDB 持久化
bash
SAVE # 同步执行RDB快照(会阻塞服务) BGSAVE # 异步执行RDB快照(后台生成) LASTSAVE # 获取最后一次成功执行快照的时间 -
AOF 持久化
bash
BGREWRITEAOF # 异步重写AOF文件(压缩命令日志)
十、服务器管理命令
功能:管理 Redis 服务器状态、配置和性能监控。
-
服务器信息
bash
INFO [section] # 获取服务器信息(如memory、clients等) CONFIG GET parameter # 获取服务器配置参数 CONFIG SET parameter value # 设置服务器配置参数 -
客户端连接
bash
CLIENT LIST # 查看所有连接的客户端 CLIENT KILL ip:port # 关闭指定客户端连接 -
内存管理
bash
MEMORY USAGE key # 获取键占用的内存字节数 INFO memory # 查看内存使用统计信息 -
关闭服务器
bash
SHUTDOWN [NOSAVE|SAVE] # 关闭服务器(可选是否保存数据)
十一、高级应用命令
-
分布式锁
bash
SET lock_key unique_value NX PX expire_time # 获取锁 DEL lock_key # 释放锁(需保证原子性,建议用Lua脚本) -
Lua 脚本
bash
EVAL script numkeys key1 key2 arg1 arg2 # 执行Lua脚本 -
慢查询日志
bash
SLOWLOG GET [count] # 获取慢查询日志 SLOWLOG RESET # 清空慢查询日志
十二、常见应用场景
-
缓存
- 使用
SET/GET存储热点数据,设置合理过期时间。
- 使用
-
计数器
- 使用
INCR/DECR实现访问量、点赞数等计数功能。
- 使用
-
分布式锁
- 使用
SET key value NX PX实现原子性锁操作。
- 使用
-
消息队列
- 使用
LPUSH/RPOP或RPUSH/LPOP实现简单队列。
- 使用
-
排行榜
- 使用有序集合
ZADD/ZRANGE实现分数排名。
- 使用有序集合
-
会话存储
- 使用
HASH存储用户会话信息。
- 使用
十三、命令执行示例
以下是一个完整的执行示例,展示如何使用 Redis 命令:
bash
# 启动Redis客户端
redis-cli
# 字符串操作
SET name "John"
GET name # 输出: "John"
INCR counter # 初始值为0,自增后为1
# 哈希操作
HSET user:1 name "Alice"
HSET user:1 age 30
HGETALL user:1 # 输出: name Alice, age 30
# 列表操作
LPUSH tasks "task1"
LPUSH tasks "task2"
LRANGE tasks 0 -1 # 输出: task2, task1
# 集合操作
SADD fruits "apple"
SADD fruits "banana"
SMEMBERS fruits # 输出: apple, banana
# 有序集合操作
ZADD scores 90 "Alice"
ZADD scores 85 "Bob"
ZRANGE scores 0 -1 WITHSCORES # 输出: Bob 85, Alice 90
# 事务示例
MULTI
SET key1 "value1"
GET key1
EXEC # 按顺序执行两个命令
2万+

被折叠的 条评论
为什么被折叠?



