redis运维(六)redis-cli命令

一  redis-cli

注意: 'redis-cli'核'redis-server'版本必须适配 --> '见' redis-cli --version

提示: 不过一般安装服务端 redis-server 时'内置'了客户端 redis-cli

说明:  redis-cli 是 redis 的一种命令行的'客户端'工具

备注: 'redis-server'的安装过程这里'不再'赘述

①  redis-cli的命令行参数

优点:redis-cli 实现'非交互',意味者'批量',可以'自动化'

redis运维(六)redis-cli命令_第1张图片

案例讲解

redis运维(六)redis-cli命令_第2张图片

细节:redis-cli客户端和redis-server版本'不适配',导致'-c'集群模式参数'不生效'

②  测试连通性

redis运维(六)redis-cli命令_第3张图片

1、ping 是'redis的命令' --> 检验'是否连接上'redis

2、说明:输入命令ping,返回'PONG',表示'已连接redis-server'

③  环境变量登入

方式1: redis-cli -a '指定密码'

方式2: auth  '指定密码'

方式3: REDISCLI_AUTH '环境变量'

④ -i 定时任务

1、-r 参数: 重复执行'一个命令'指定的'次数'

2、-i 参数: 设置命令'执行的间隔'

案例: 每隔'1秒'执行一次,一共执行3次'info cpu'命令

redis运维(六)redis-cli命令_第4张图片

-c 集群模式  重要

1、与前面'单机/主从/哨兵'模式'不同'的是,客户端命令 redis-cli 需要增加一个'-c'参数

2、表示是'连接到集群',这样客户端的'读写行为'才是在'整个集群中可见'的

特点: 查询和删除的'solt'槽位'不在'当前节点,会'自动跳转'到目标节点

3、若'不加-c参数'虽然也可连接,但是仅仅是连接到'当前的节点',是无法进行数据读写的

备注: 除非所读写的数据的键值,经过'Hash 计算'得到的 slot 槽号,'刚好在这个节点'里面

⑥  -x

-x '参数': 从'标准输入'读取一个参数

echo -n 'wzj' | redis-cli -x set hello

细节: echo命令是'默认'带有'回车\n'的

⑦  --eval  运行外部文件lua脚本

说明: 编写'简单'脚本时,'--eval'选项很'有用'

cat /tmp/script.lua  --> '内容'

  return redis.call('set',KEYS[1],ARGV[1])         

redis-cli -h 127.0.0.1 -p 6379 --eval /tmp/script.lua wzj,tony

补充: 它使用'逗号'分隔'键'和'参数',所以'wzj'会填充'KEYS数组','tony'会填充'ARGV数组'

redis的eval命令使用

⑧  批量删除 key 报错

1、问题'现象': java做'序列化'的时候生成了一些'特殊的key'

Warning: a NUL character occurred in the input

redis运维(六)redis-cli命令_第5张图片

根因:key是JDK序列化后的字符串,xargs读取出来是乱码,无法删除

2、问题'根因'

linux shell 删除key \xAC\xED\x00\x05t\x00\x04${key} 序列化16进制

3、解决'策略1'

redis运维(六)redis-cli命令_第6张图片

注意: redis-cli一定要与redis-server '版本适配'

后续: 模拟'序列化'和'删除'的操作

redis解决key乱码

4、解决'策略2'

说明: '不推荐',因为'以此开头'的key可能'不符合'我们的预期

redis批量删除key  批量删除指定的key

redis-cli -c -a 123456 keys '条件' | xargs -I {} redis-cli -c -a 123456 delete

备注: xargs -I {} 参数可以避免'key 中存在空格'导致的'参数拆分'异常问题

⑨  redis-cli --cluster 集群管理命令

强调:redis-cli -c 与 redis-cli --cluster '不同'

redis运维(六)redis-cli命令_第7张图片

⑩  redis-cli 安全问题

redis操作历史: '~/.rediscli_history'

redis运维(六)redis-cli命令_第8张图片

可以设置环境变量'REDISCLI_HISTFILE=/dev/null',它将'阻止'保存redis操作历史记录.

两种方式禁止redis记录

redis运维(六)redis-cli命令_第9张图片

⑪   --bigkeys参数 --latency参数 -pipe参数 --scan --pattern参数

redis运维(六)redis-cli命令_第10张图片

redis运维(六)redis-cli命令_第11张图片

 

你可能感兴趣的:(redis,redis,redis-cli,REDISCLI_AUTH)