做标准件网站,推广公司产品,app下载注册量推广平台,合肥网站建设的公司哪家好一 redis-cli
注意#xff1a; redis-cli核redis-server版本必须适配 -- 见 redis-cli --version提示#xff1a; 不过一般安装服务端 redis-server 时内置了客户端 redis-cli说明#xff1a; redis-cli 是 redis 的一种命令行的客户端工具备注#xff1a; redis-se…一 redis-cli
注意 redis-cli核redis-server版本必须适配 -- 见 redis-cli --version提示 不过一般安装服务端 redis-server 时内置了客户端 redis-cli说明 redis-cli 是 redis 的一种命令行的客户端工具备注 redis-server的安装过程这里不再赘述
① redis-cli的命令行参数
优点redis-cli 实现非交互,意味者批量,可以自动化 案例讲解 细节redis-cli客户端和redis-server版本不适配,导致-c集群模式参数不生效 ② 测试连通性 1、ping 是redis的命令 -- 检验是否连接上redis2、说明输入命令ping,返回PONG,表示已连接redis-server ③ 环境变量登入
方式1 redis-cli -a 指定密码方式2 auth 指定密码方式3 REDISCLI_AUTH 环境变量 ④ -i 定时任务
1、-r 参数 重复执行一个命令指定的次数2、-i 参数 设置命令执行的间隔 案例 每隔1秒执行一次,一共执行3次info cpu命令 ⑤ -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 根因key是JDK序列化后的字符串,xargs读取出来是乱码,无法删除
2、问题根因 linux shell 删除key \xAC\xED\x00\x05t\x00\x04${key} 序列化16进制
3、解决策略1 注意 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-cli 安全问题
redis操作历史 ~/.rediscli_history 可以设置环境变量REDISCLI_HISTFILE/dev/null,它将阻止保存redis操作历史记录.
两种方式禁止redis记录 ⑪ --bigkeys参数 --latency参数 -pipe参数 --scan --pattern参数