zoukankan      html  css  js  c++  java
  • redis 批量删除 keys

    #!/bin/bash
    
    
    redis_list=("192.168.252.174:7000" "192.168.252.174:7001" "192.168.252.174:7002" "192.168.252.176:7003" "192.168.252.176:7004" "192.168.252.176:7005")
    
    pkey_list=("CAS_TICKET*")
    
    for info in ${redis_list[@]}
        do
            echo "开始执行:$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 -a "abc" keys $pkey | xargs -r -t -n1 redis-cli -c -h $ip -p $port -a "abc" del
    		done
        done
    echo "完成"
    

    执行一会提示,'Redis:Cannot assign requested address'

    客户端频繁连接Redis服务端,由于每次连接都在很短时间内结束,导致服务器出现大量time-wait。以至于用光了可用的端口号。
    所以需要自动释放 time-wait

    net.ipv4.ip_local_port_range = 9000 6553
    net.ipv4.tcp_max_tw_buckets = 10000
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_fin_timeout = 10
    

    一个小插曲

    集群修改了密码,需要同步修改项目里面的Redis集群密码。修改以后一直报

    Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set

    由于密码里面有特殊字符,以为是转义了。
    用双引号、单引号、转义符都没用。
    后来去检查Redis集群。才发现只有一个节点设置了密码,其他节点都没设置。
    赶紧补上密码,重启项目,问题解决。

  • 相关阅读:
    linux日常管理-screen
    linux日常管理-xarge_exec
    linux日常管理-linux日志
    linux日常管理-系统服务
    linux命令-任务计划-cron
    linux日常管理-防火墙netfilter工具-iptables-3
    linux日常管理-防火墙netfilter工具-iptables-2
    开启80端口
    linux日常管理-防火墙netfilter工具-iptables-1
    随机4位验证码
  • 原文地址:https://www.cnblogs.com/fsckzy/p/10725856.html
Copyright © 2011-2022 走看看