文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

redis 命令

2024-04-02 19:55

关注

查看当前节点的连接数

CLIENT LIST

配置redis空闲时长

> CLIENT LIST

其中idle(以秒计算的空闲时长)。很多空闲连接没有被及时释放掉从而导致connected_clients非常高

> config get timeout
> config set timeout 600

修改配置文件

vim redis.conf

内容如下:

# Close the connection after a client is idle for N seconds (0 to disable)
#timeout 0         # 注掉
timeout 600       # 添加

redis cluster 通配符 批量删除key

参考:https://blog.51cto.com/chinahao/2056082

keys模式

Redis 中 DEL指令支持多个key作为参数进行删除 但不支持通配符,无法通过通配符批量删除key,不过我们可以借助 Linux 的管道和 xargs 指令来完成这个动作。

匹配查看keys,会显示当前模式下匹配到的keys

redis-cli -h 192.168.1.101 -c -p 7000 keys *_201901*
   1) "gl_klhz_udfs_min_201901222000"
   2) "qx_swly_tenmin_201901250240"
   3) "qx_swly_udfs_min_201901271330"

通过ttl查看某个keys的失效时间;

redis-cli -h 192.168.1.101 -c -p 7000 ttl qx_swly_tenmin_201901250240

返回值:

    (integer) 正数     # 失效时间,单位秒;
    (integer) -1     # 永不失效;
    (integer) -2     # 已删除;

通过xargs批量删除keys

redis-cli -h 192.168.1.101 -c -p 7000 keys *_201901*  | xargs -i redis-cli -h 192.168.1.101 -p 7000 DEL {}

注意:有几个master就执行几次,每套主从执行一次即可;
这样一个坏处每次都要建立一个连接,量小的话还可以接受,量大的话,效率不行。

scan

自从redis2.8以后就开始支持scan命令,模式匹配可以采取下面的形式来批删除大量的key。

匹配keys

redis-cli -h 192.168.1.101 -c -p 7000 --scan --pattern "*_2019011*"

删除查找到的keys

redis-cli -h 192.168.1.101 -c -p 7000 --scan --pattern *_20190111* | xargs -i redis-cli -h 192.168.1.101 -c -p 7000 DEL {}

速度处理也是非常快的。

脚本批量执行

#!/bin/bash
# redis cluster 批量删除"keys"脚本

redis_list=("192.168.1.101:7000" "192.168.1.102:7000" "192.168.1.103:7000" "192.168.1.104:7000" "192.168.1.105:7000" "192.168.1.106:7000")

# 要批量删除的keys,多个之间用空格隔开;
pkey_list=("*_20190113*" "qx_swly_tenmin_*")

for info in ${redis_list[@]}
do
    echo -e "\n开始执行:$info"
    ip=$(echo $info | cut -d \: -f 1)
    port=$(echo $info | cut -d \: -f 2)

    for pkey in ${pkey_list[@]}
    do
        #redis-cli -c -h $ip -p $port KEYS $pkey | xargs -n 1 -t -i redis-cli -c -h $ip -p $port DEL {}
        redis-cli -c -h $ip -p $port --scan --pattern ${pkey} | xargs -n 1 -t -i redis-cli -c -h $ip -p $port DEL {}
    done
done

echo -e "完成: $?"

redis cluster中,如何将slave手工切换为master。

在集群环境,单条主从的slave上,敲如cluster failover即可,秒级完成;

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯