Redis 基础命令速查表,如果有觉得看表不适应的兄弟,可往下滑看命令
分类 | 命令 | 语法示例 | 详细注释 | 应用场景 |
---|---|---|---|---|
键(Key)操作 | KEYS | KEYS pattern | 查找所有匹配 pattern 的键(如 KEYS user:* )。生产环境慎用(阻塞式命令,大数据量会导致性能问题)。 | 开发调试时查找键 |
EXISTS | EXISTS key | 检查键是否存在,返回 1 (存在)或 0 (不存在)。 | 判断缓存是否存在 | |
DEL | DEL key1 key2 | 删除一个或多个键,返回删除成功的数量。 | 清理无用数据 | |
EXPIRE + TTL | EXPIRE key 60 TTL key | EXPIRE :设置键的过期时间(秒)。TTL :查看键剩余生存时间(-1 =永不过期,-2 =已过期)。 | 实现验证码过期、会话管理 | |
字符串(String) | SET + GET | SET name "Alice" GET name | SET :设置键值(可追加 EX 60 设置过期时间)。GET :获取字符串值。 | 存储简单数据(如配置、计数器) |
INCR /DECR | INCR counter DECRBY counter 5 | INCR :原子性+1。DECRBY :指定步长减少。 | 计数器、限流系统 | |
MSET /MGET | MSET k1 v1 k2 v2 MGET k1 k2 | 批量设置/获取多个键值,减少网络开销。 | 批量操作数据 | |
哈希(Hash) | HSET /HGET | HSET user:100 name "Alice" age 25 HGET user:100 name | HSET :设置哈希表的字段值。HGET :获取单个字段值。 | 存储对象(如用户信息) |
HGETALL | HGETALL user:100 | 返回哈希表的所有字段和值。 | 获取完整对象数据 | |
HDEL | HDEL user:100 age | 删除哈希表的指定字段。 | 删除对象部分属性 | |
列表(List) | LPUSH /RPOP | LPUSH tasks "task1" RPOP tasks | LPUSH :从列表左侧插入(栈结构)。RPOP :从右侧弹出(队列结构)。 | 消息队列、最新消息列表 |
LRANGE | LRANGE tasks 0 -1 | 返回列表指定范围的元素(0 -1 表示全部)。 | 分页查询历史记录 | |
集合(Set) | SADD /SMEMBERS | SADD tags "redis" SMEMBERS tags | SADD :添加元素到集合(自动去重)。SMEMBERS :返回所有成员。 | 标签系统、好友关系 |
SINTER | SINTER set1 set2 | 返回多个集合的交集。 | 共同好友、兴趣匹配 | |
有序集合(Sorted Set) | ZADD /ZRANGE | ZADD leaderboard 100 "Alice" ZRANGE leaderboard 0 -1 WITHSCORES | ZADD :添加带分数的成员。ZRANGE :按分数升序返回成员(WITHSCORES 显示分数)。 | 排行榜、优先级队列 |
服务器管理 | INFO | INFO memory | 查看服务器状态信息(可选参数:memory /cpu /replication 等)。 | 监控服务器性能 |
FLUSHDB /FLUSHALL | FLUSHDB | FLUSHDB :清空当前数据库。FLUSHALL :清空所有数据库。 极端危险命令! | 测试环境数据清理 | |
事务 | MULTI /EXEC | MULTI SET a 10 SET b 20 EXEC | MULTI :开启事务。EXEC :执行事务块内的所有命令(原子性保证)。 | 批量操作保证一致性 |
持久化 | BGSAVE | BGSAVE | 后台异步保存数据到RDB文件(非阻塞)。 | 定期数据备份 |
一、Key(键)操作
-- 查看所有键(生产环境慎用,数据量大时会阻塞)
KEYS *-- 检查键是否存在(返回1存在,0不存在)
EXISTS key_name-- 设置键过期时间(单位:秒)
EXPIRE key_name 60-- 查看键剩余生存时间(-1表示永不过期,-2表示键不存在)
TTL key_name-- 删除键
DEL key_name-- 随机返回一个键
RANDOMKEY-- 重命名键
RENAME old_key new_key
二、String(字符串)
-- 设置键值(如果键存在则覆盖)
SET name "Alice"-- 设置键值并设置过期时间(单位:秒)
SETEX age 30 "25" -- 键age将在30秒后自动删除-- 只有当键不存在时设置(NX=Not eXists)
SETNX counter 1-- 获取值
GET name-- 值递增(原子操作)
INCR counter -- 返回递增后的值-- 值递减
DECR counter-- 批量设置/获取
MSET k1 v1 k2 v2
MGET k1 k2
三、Hash(哈希表)
-- 设置哈希字段
HSET user:id:1001 name "Bob" age 30-- 获取单个字段
HGET user:id:1001 name-- 获取所有字段和值
HGETALL user:id:1001-- 删除字段
HDEL user:id:1001 age-- 检查字段是否存在
HEXISTS user:id:1001 email-- 获取所有字段名
HKEYS user:id:1001
四、List(列表)
-- 从左侧插入元素
LPUSH fruits "apple" "banana"-- 从右侧插入元素
RPUSH fruits "orange"-- 从左侧弹出元素(移除并返回)
LPOP fruits-- 获取列表片段(0到-1表示全部)
LRANGE fruits 0 -1-- 列表长度
LLEN fruits-- 保留指定范围内的元素
LTRIM fruits 0 1 -- 只保留前两个元素
五、Set(集合)
-- 添加元素
SADD tags "redis" "database" "nosql"-- 获取所有元素
SMEMBERS tags-- 随机弹出一个元素
SPOP tags-- 集合运算(并集/交集/差集)
SUNION set1 set2
SINTER set1 set2
SDIFF set1 set2-- 检查元素是否存在
SISMEMBER tags "redis"
六、Sorted Set(有序集合)
-- 添加带分数的成员
ZADD leaderboard 100 "Alice" 90 "Bob"-- 按分数升序获取(WITHSCORES显示分数)
ZRANGE leaderboard 0 -1 WITHSCORES-- 按分数降序获取
ZREVRANGE leaderboard 0 -1 WITHSCORES-- 获取成员排名(从0开始)
ZRANK leaderboard "Bob" -- 升序排名
ZREVRANK leaderboard "Bob" -- 降序排名-- 根据分数范围查询
ZRANGEBYSCORE leaderboard 80 100
七、服务器管理
-- 查看服务器信息
INFO-- 查看内存使用情况
INFO memory-- 查看客户端连接
CLIENT LIST-- 清空当前数据库
FLUSHDB-- 清空所有数据库
FLUSHALL -- 生产环境慎用!-- 保存数据到磁盘(同步)
SAVE-- 后台保存数据到磁盘
BGSAVE-- 关闭Redis连接
QUIT
八、事务操作
-- 开启事务
MULTI-- 将命令加入队列
SET balance 100
INCRBY balance 50-- 执行事务(如果中途出错,所有命令不执行)
EXEC-- 取消事务
DISCARD
九、实用技巧
1. 批量删除键
-- 删除所有以"temp:"开头的键
redis-cli KEYS "temp:*" | xargs redis-cli DEL
2. 密码连接
-- 连接时直接认证
redis-cli -a yourpassword-- 更安全的方式(先连接再认证)
redis-cli
AUTH yourpassword
3. 性能测试工具
-- 测试Redis每秒操作数
redis-benchmark -q -n 100000
十、可视化工具推荐
-
RedisInsight(官方GUI工具)
-
Another Redis Desktop Manager(开源客户端)
链接 安装Redis与安装可视化Another Redis Desktop Manager
兄弟们注意一下
-
KEYS *
和FLUSHALL
在生产环境慎用 -
重要数据建议开启持久化(配置
save
参数) -
长命令可以用
\
换行输入:
后续会慢慢写,谢谢