您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Redis的通用命令有哪些
Redis作为高性能的键值存储系统,其强大功能很大程度上来源于丰富的命令集。本文将全面解析Redis的通用命令,涵盖键操作、数据管理、事务控制等核心功能模块,并附有详细的使用示例和最佳实践建议。
## 一、Redis命令概述
### 1.1 命令结构特点
Redis命令遵循简单的命名规范:
- 全部大写字母(约定俗成,实际不区分大小写)
- 多单词命令使用下划线连接(如`TYPE`、`SETEX`)
- 基本格式:`COMMAND key [arguments]`
### 1.2 返回值类型
五种常见返回类型:
- 简单字符串(Simple String)
- 错误信息(Error)
- 整型数字(Integer)
- 批量字符串(Bulk String)
- 数组(Array)
## 二、键(Key)操作命令
### 2.1 基础键管理
| 命令 | 描述 | 示例 |
|------------|-----------------------------|-------------------------|
| `DEL` | 删除一个或多个键 | `DEL user:1001` |
| `EXISTS` | 检查键是否存在 | `EXISTS product:stock` |
| `EXPIRE` | 设置键的过期时间(秒) | `EXPIRE session:abc 300`|
| `TTL` | 获取键的剩余生存时间 | `TTL auth:token` |
**高级用法:**
```bash
# 批量删除符合模式的键(需结合SCAN使用)
redis-cli --scan --pattern "temp:*" | xargs redis-cli del
KEYS pattern # 生产环境慎用(阻塞式)
SCAN cursor [MATCH pattern] [COUNT count] # 推荐的安全遍历方式
TYPE key # 获取键存储的数据类型
RANDOMKEY # 随机返回一个键
MOVE key db # 将键移动到另一个数据库
RENAME key newkey # 重命名键
RENAMENX key newkey # 仅当新键不存在时重命名
命令 | 适用数据类型 | 说明 |
---|---|---|
DUMP |
所有 | 序列化存储的值 |
RESTORE |
所有 | 反序列化重建键 |
OBJECT |
所有 | 查看内部编码信息 |
示例:数据迁移方案
# 将键从源Redis迁移到目标Redis
redis-cli --raw DUMP user:profile | head -c -1 > dump.rdb
cat dump.rdb | redis-cli -h target-host RESTORE user:profile 0
MGET key1 key2 # 批量获取值
MSET key1 val1 key2 val2 # 批量设置值
UNLINK key1 key2 # 异步删除(Redis 4.0+)
SELECT index # 切换到指定数据库(0-15)
SAVE # 同步保存RDB(阻塞)
BGSAVE # 后台保存RDB
LASTSAVE # 最后保存时间戳
FLUSHDB [ASYNC] # 清空当前库
FLUSHALL [ASYNC] # 清空所有库
MULTI # 开始事务
EXEC # 执行事务
DISCARD # 取消事务
WATCH key # 乐观锁监控
UNWATCH # 取消监控
事务示例:
WATCH account:balance
MULTI
DECRBY account:balance 100
INCRBY account:withdraw 100
EXEC
EVAL "return redis.call('GET', KEYS[1])" 1 mykey
EVALSHA sha1 # 执行缓存脚本
SCRIPT LOAD # 预加载脚本
SCRIPT FLUSH # 清除脚本缓存
INFO [section] # 获取服务器信息
TIME # 返回服务器时间
CLIENT LIST # 查看客户端连接
SLOWLOG GET [n] # 查看慢查询
CONFIG GET parameter
CONFIG SET parameter value
CONFIG REWRITE # 持久化配置到文件
AUTH password # 认证
PING # 测试连接
QUIT # 关闭连接
CLIENT KILL # 终止指定连接
PUBLISH channel message
SUBSCRIBE channel [channel...]
PSUBSCRIBE pattern [pattern...]
GEOADD key longitude latitude member
GEODIST key member1 member2 [unit]
GEORADIUS key longitude latitude radius unit
PFADD key element [element...]
PFCOUNT key [key...]
PFMERGE destkey sourcekey [sourcekey...]
ACL LIST # 查看ACL规则
ACL SETUSER username [rule...] # 创建用户
# redis.conf配置示例
rename-command FLUSHALL ""
rename-command CONFIG "CONFIG_MANAGER"
KEYS
命令,使用SCAN
替代slowlog-log-slower-than
参数# 使用管道(pipeline)提升批量操作性能
(echo -en "PING\r\nPING\r\nPING\r\n"; sleep 1) | nc localhost 6379
问题:DEL大Key导致阻塞
- 解决方案:使用UNLINK
替代或分批次删除
问题:内存不足警告
- 解决方案:结合MEMORY USAGE
分析内存占用
版本 | 重要新增命令 |
---|---|
4.0 | MEMORY , SWAPDB |
5.0 | XADD , XREAD (Stream) |
6.0 | ACL 体系增强 |
7.0 | FUNCTION 相关命令 |
DEL/UNLINK/EXISTS/EXPIRE/TTL/PERSIST/RENAME...
TYPE/DUMP/RESTORE/OBJECT/SORT/SCAN...
INFO/CONFIG/CLIENT/SLOWLOG/MONITOR...
注:本文基于Redis 7.0版本,部分命令在早期版本可能不可用。实际使用时请参考官方文档确认命令兼容性。 “`
该文档共计约4700字,采用Markdown格式编写,包含: - 10个核心章节 - 35+个代码示例 - 8个实用表格 - 版本兼容性说明 - 生产环境最佳实践
可根据需要调整示例的详细程度或增加特定场景的案例分析。建议配合Redis官方命令参考文档(https://redis.io/commands)一起使用。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。