当前位置: 首页 > news >正文

Redis常见管理命令

Redis常见管理命令

一、基础命令

1.同步执行 RDB 持久化(阻塞主线程),慎用!

127.0.0.1:6389> save OK

2.异步执行 RDB 持久化(fork 子进程)

bgsave

3.返回当前实例的角色(master/slave/sentinel)

role 示例如下: master角色: 127.0.0.1:6389> role 1) "master" 2) (integer) 6022666659 3) 1) 1) "192.0.5.30" 2) "6389" 3) "6022666371" 2) 1) "192.0.6.221" 2) "6389" 3) "6022666371" slave角色: 127.0.0.1:6389> role 1) "slave" 2) "192.0.6.17" 3) (integer) 6389 4) "connected" 5) (integer) 6022666226 sentinel角色: 127.0.0.1:7389> role 1) "sentinel" 2) 1) "mymaster"

二:分片集群(Cluster)运维命令

打印集群的整体信息 cluster info 列出集群中所有节点及其状态 cluster nodes 检查集群 redis-cli --cluster check 192.0.6.73:8001 -a "******" 为新节点分配哈希槽(reshard) redis-cli --cluster reshard 192.168.1.101:8003 -a "******" 删除节点 redis-cli --cluster del-node 192.168.1.103:8001 7af3a74056926943fe82649659b6e2c46997a8f1 -a "******" 新增Master节点: redis-cli --cluster add-node 192.168.1.101:8003 192.168.1.101:8001 -a "******" 新增Slave节点: –cluster-slave表示新加入节点是slave节点,cluster-master-id 后面指定从节点属于哪个master节点,接master节点的id即可 redis-cli --cluster add-node 192.168.1.101:8004 192.168.1.101:8003 --cluster-slave --cluster-master-id cccc3b110d71ae99dbe9a02d7b9a846243cce7c9 -a "******" 迁移slot: redis-cli --cluster reshard 192.168.1.103:8001 -a "******" 平衡slot: redis-cli --cluster rebalance 192.168.1.101:8003 -a "******" 将指定节点添加到当前集群 cluster meet <ip> <port> 从集群中移除指定节点 cluster forget <node-id> 将当前节点设置为指定主节点的从节点 cluster replicate 将集群配置保存到节点配置文件中 cluster saveconfig 将一个或多个槽指派给当前节点 cluster addslots [slot ...] 移除当前节点上的槽指派 cluster delslots [slot …] 移除当前节点的所有槽 cluster flushslots 将槽指派给指定节点 cluster setslot <slot> node <node-id>

计算key所属的槽位

计算 key 所属的槽位 cluster keyslot <key> 示例如下: 127.0.0.1:8001> cluster keyslot a (integer) 15495 127.0.0.1:8001> cluster keyslot b (integer) 3300 127.0.0.1:8001> cluster keyslot c (integer) 7365 127.0.0.1:8001> cluster keyslot 1 (integer) 9842 127.0.0.1:8001> cluster keyslot 2 (integer) 5649 127.0.0.1:8001> cluster keyslot 3 (integer) 1584

返回槽位中包含的 key 数量

cluster countkeysinslot <slot> 示例如下: 192.0.6.73:8004> cluster countkeysinslot 7365 (integer) 1

创建分片集群

Redis 5,Redis 6版本: redis-cli --cluster create 192.168.1.101:8001 192.168.1.101:8002 192.168.1.102:8001 192.168.1.102:8002 192.168.1.103:8001 192.168.1.103:8002 --cluster-replicas 1 -a "******"

列出所有的客户端连接

列出所有客户端连接 client list

配置管理命令

获取指定配置参数的值,CONFIG GET * 查看所有

config get <parameter> 示例如下: 192.0.6.73:8004> config get dir 1) "dir" 2) "/redis/8004/data" 192.0.6.73:8004> config get * 1) "rdbchecksum" 2) "yes" ...... 295) "oom-score-adj-values" 296) "0 200 800"

三、动态修改配置参数(重启后失效)

config set <parameter> <value> 示例如下: 192.0.6.73:8004> config get slowlog-max-len 1) "slowlog-max-len" 2) "128" 192.0.6.73:8004> config set slowlog-max-len 256 OK 192.0.6.73:8004> config get slowlog-max-len 1) "slowlog-max-len" 2) "256"

四、将当前配置持久化到 redis.conf 文件

config rewrite 示例如下: 127.0.0.1:8001> config get slowlog-max-len 1) "slowlog-max-len" 2) "128" 127.0.0.1:8001> config set slowlog-max-len 256 OK 127.0.0.1:8001> config get slowlog-max-len 1) "slowlog-max-len" 2) "256" cat /redis/8001/conf/redis.conf |grep slowlog-max-len slowlog-max-len 128 127.0.0.1:8001> config rewrite OK cat /redis/8001/conf/redis.conf |grep slowlog-max-len slowlog-max-len 256

重置 INFO 命令中的统计信息

config resetstat 示例如下: 127.0.0.1:8001> config resetstat OK

扫描并找出大 key

redis-cli --bigkeys 示例如下: redis-cli -p 6389 -a "flzx3Qc!" --bigkeys

目标生产库进行压测

压测: 100个客户端,同时请求redis,一共执行20000次。 redis-benchmark -p 6389 -h 25.19.118.70 -c 100 -n 20000 500个客户端,同时请求redis,一共执行20000次。 redis-benchmark -p 6389 -h 25.19.118.70 -a yELxh_3qSiXr -c 500 -n 20000 -q

五、通用操作

切换数据库(指定数据库 0-15,默认 0)

select <db_index> 示例如下: 127.0.0.1:6389> select 5 OK 127.0.0.1:6389[5]>
1、删除一个或多个 key
del <key...> 示例如下 127.0.0.1:6389> del a (integer) 1 127.0.0.1:6389> del b c (integer) 2

非阻塞删除(异步删除)

unlink <key...> 示例如下 127.0.0.1:6389> unlink a (integer) 1 不支持多个 127.0.0.1:6389> ulink b c (error) ERR unknown command `ulink`, with args beginning with: `b`, `c`,

判断 key 是否存在

exists <key> 示例如下: 127.0.0.1:6389> exists abc (integer) 1 127.0.0.1:6389> exists bcd (integer) 0

查看 key 剩余生存时间(秒)

127.0.0.1:6389> set a 123 OK 127.0.0.1:6389> ttl a (integer) -1 127.0.0.1:6389> set b 123 ex 100 OK 127.0.0.1:6389> ttl b (integer) 97

查看 key 剩余生存时间(毫秒)

pttl <key> 示例如下 127.0.0.1:6389> pttl b (integer) 82033

为 key 设置过期时间(秒)

expire <key> <seconds> 示例如下: 127.0.0.1:6389> ttl a (integer) -1 127.0.0.1:6389> expire a 100 (integer) 1 127.0.0.1:6389> ttl a (integer) 97

以毫秒为单位设置过期时间

pexpire <key> <milliseconds> 示例如下: 127.0.0.1:6389> pexpire a 100000 (integer) 1 127.0.0.1:6389> ttl a (integer) 98 127.0.0.1:6389> pttl a (integer) 78329

设置 key 在指定时间戳过期

expireat <key> <timestamp> 示例如下 127.0.0.1:6389> expireat a 78329 (integer) 1 127.0.0.1:6389> ttl a (integer) -2 127.0.0.1:6389> get a (nil)
2、移除 key 的过期时间,使其永久有效
persist <key> 示例如下 127.0.0.1:6389> set a 123 ex 60 OK 127.0.0.1:6389> ttl a (integer) 57 127.0.0.1:6389> persist a (integer) 1 127.0.0.1:6389> ttl a (integer) -1查看 key 的数据类型
type <key> 示例如下 127.0.0.1:6389> type a string
3、查看 key 的内部编码格式
object encoding <key> 示例如下 127.0.0.1:6389> object encoding a "int" 127.0.0.1:6389> get a "123" 127.0.0.1:6389> set b 123abc OK 127.0.0.1:6389> object encoding b "embstr"
4、重命名 key,若新 key 存在则覆盖
rename <oldkey> <newkey> 示例如下 127.0.0.1:6389> set a 123 OK 127.0.0.1:6389> set b 456 OK 127.0.0.1:6389> rename a b OK 127.0.0.1:6389> get b "123" 127.0.0.1:6389> get a (nil)
5、重命名 key,仅当新 key 不存在时成功
renamenx <oldkey> <newkey> 示例如下 127.0.0.1:6389> set a 123 OK 127.0.0.1:6389> set b 456 OK 127.0.0.1:6389> renamenx a b (integer) 0 127.0.0.1:6389> get b "456" 127.0.0.1:6389> get a "123" 127.0.0.1:6389> renamenx a c (integer) 1 127.0.0.1:6389> get c "123"
6、将 key 移动到另一个数据库
move <key> <db_index> 示例如下 127.0.0.1:6389> set a 123 OK 127.0.0.1:6389> move a 5 (integer) 1 127.0.0.1:6389> get a (nil) 127.0.0.1:6389> select 5 OK 127.0.0.1:6389[5]> get a "123"

从当前数据库随机返回一个 key

randomkey 示例如下 127.0.0.1:6389> randomkey "b" 127.0.0.1:6389> randomkey "d" 127.0.0.1:6389> randomkey "e"

查找匹配模式的 key(生产环境慎用)

keys <pattern> 示例如下 127.0.0.1:6389> keys a (empty array) 127.0.0.1:6389> keys b 1) "b" 127.0.0.1:6389> get b "456" 或者指定"*",查看所有(默认db0),性能差,生产环境勿用 127.0.0.1:6389> keys * 1) "abc" 2) "b" 3) "e" 4) "a02" 5) "g" 6) "d" 7) "a01" 8) "20260127" 9) "h" 10) "c" 支持通配符 127.0.0.1:6389> keys a* 1) "abc" 2) "a02" 3) "a01"
7、序列化 key 并返回其值
dump <key> 通过 序列化 和 反序列化操作,可以实现对单个key的备份/恢复、迁移等工作。 示例如下: 127.0.0.1:6389> set a 123 OK 127.0.0.1:6389> get a "123" 127.0.0.1:6389> dump a "\x00\xc0{\t\x00\x98\x10\x02-T\xfc\x04\b" 127.0.0.1:6389>
8.对列表、集合或有序集合进行排序
sort <key> 示例如下 对列表(List)进行数字升序排序 127.0.0.1:6389> LPUSH numbers 5 2 3 6 1 (integer) 5 127.0.0.1:6389> sort numbers 1) "1" 2) "2" 3) "3" 4) "5" 5) "6" 127.0.0.1:6389> sort numbers desc 1) "6" 2) "5" 3) "3" 4) "2" 5) "1"

六、不同类型 keys 的操作

1.字符串(String)操作

设置字符串值,支持过期时间和存在性判断 set <key> <value> [NX|XX] [EX|PX] 示例如下 127.0.0.1:6389> set cjc 123 ex 10 OK 获取 key 的值 get <key> 示例如下 127.0.0.1:6389> get cjc "123" 批量设置多个字符串值 mset <key> <value> [key value ...] 示例如下 127.0.0.1:6389> mset cjc01 1 cjc02 b cjc03 c OK 127.0.0.1:6389> keys cjc* 1) "cjc03" 2) "cjc01" 3) "cjc02" 批量获取多个 key 的值 mget <key...> 示例如下 127.0.0.1:6389> mget cjc01 cjc02 cjc03 1) "1" 2) "b" 3) "c" 设置值并指定过期时间(秒) setex <key> <seconds> <value> 示例如下 127.0.0.1:6389> setex cjc04 100 3 OK 127.0.0.1:6389> get cjc04 "3" 127.0.0.1:6389> ttl cjc04 (integer) 92 以毫秒为单位设置值并指定过期时间 psetex <key> <milliseconds> <value> 示例如下 127.0.0.1:6389> psetex cjc05 100000 100 OK 127.0.0.1:6389> get cjc05 "100" 127.0.0.1:6389> ttl cjc05 (integer) 91 127.0.0.1:6389> pttl cjc05 (integer) 83576 不存在时设置值 setnx <key> <value> key 示例如下 127.0.0.1:6389> setnx cjc05 100 (integer) 0 127.0.0.1:6389> setnx cjc06 100 (integer) 1
http://www.jsqmd.com/news/807467/

相关文章:

  • 若依框架菜单管理实战:手把手教你为列表页添加详情页(Vue+Element UI)
  • ChatGPT Instagram内容策略失效真相(92%运营者忽略的算法适配层)
  • 从‘密 码’对齐到响应式排版:深入聊聊CSS中控制空格的几种姿势(附代码对比)
  • 3分钟快速上手:免费开源游戏加速工具OpenSpeedy完整指南
  • Unidbg学习笔记(三):五个后端引擎的性能与取舍
  • 抖音图片怎么去水印?抖音图片去水印方法汇总 + 2026免费工具实测推荐
  • 免费获取米哈游游戏字体终极指南:11款精美开源字体库完整使用教程
  • 专业的SF6气体监测报警装置厂家_公司_装置企业_机构#瑞智开元
  • 职场性别双标:高管离职叙事中的野心表达与家庭理由
  • PaspberryPi推流
  • GTA5线上小助手:免费开源工具让你的洛圣都冒险更轻松
  • 3步快速解密QQ音乐加密文件:qmcdump终极音频转换指南
  • 智能穿戴设备技术演进:从概念到硬件、软件与生态的全面解析
  • Codex-Workspace:多仓库聚合开发与AI编程助手集成实战
  • 从音频分析到VR渲染:构建实时音乐可视化系统的核心技术解析
  • Next-Enterprise:基于Next.js的企业级应用启动模板全解析
  • 6G测试床、原型验证与试验网:探索未来通信的基石
  • 相位噪声原理、测量与工程应用全解析
  • Gemini JavaScript支持性能瓶颈诊断:Lighthouse评分暴跌38%的元凶竟是fetch()封装层?附可复用的性能监控Hook
  • AI 短剧系统快速部署,轻量化搭建,小白也能轻松运营落地
  • 开发者技能树实践:用工程化思维构建可验证的能力成长体系
  • 前端AI工程化落地最后一公里:Gemini + Web Workers + WASM协同架构(附GitHub Star超1.2k的轻量Runtime SDK)
  • Mac本地零代码微调大模型:M-Courtyard实战指南
  • 如何快速掌握开源可视化工具:Keyviz键鼠可视化实战指南
  • 智能网联汽车边缘媒体处理系统架构设计
  • 如何实现高效鼠标自动化:AutoClicker 终极指南
  • Jasminum插件:如何让中文文献管理效率提升300%?
  • csp信奥赛C++高频考点专项训练之字符串 --【回文字符串】:判断字符串是否为回文
  • VMware Guest虚拟机失去响应的排查方法
  • 太原大件货运