• scan模糊搜索,并把搜索结果删除或者重新赋相同的值,redis批量删除 批量更新


    #!/bin/bash
    ##redis主机IP
    host=$1
    ##redis端口
    port=$2
    ##key模式
    pattern=$3
    ##游标
    cursor=0
    ##退出信号
    signal=0
    
    ##循环获取key并删除
    while [ $signal -ne 1 ]
    do
    echo "cursor:${cursor}"
    sleep 2
    ##将redis scan得到的结果赋值到变量
    re=$(redis-cli -h $host -p $port -c scan $cursor count 1000 match $pattern)
    ##以换行作为分隔符
    IFS=$'
    ' 
    #echo $re
    echo 'arr=>'
    ##转成数组
    arr=($re)
    ##打印数组长度
    echo 'len:'${#arr[@]}
    ##第一个元素是游标值
    cursor=${arr[0]}
    ##游标为0表示没有key了
    if [[ $cursor -eq 0 ]];then
    signal=1
    fi
    ##循环数组
    for key in ${arr[@]}
    do
    echo $key
    if [ $key != $cursor ];then
    echo "key:"$key
    ##批量把值设置为10,批量设置请把批量删除的注释掉
    redis-cli -h $host -p $port -c set $key 10 >/dev/null 2>&1
    
    ##批量删除key,批量删除请把批量设置的注释掉
    redis-cli -h $host -p $port -c del $key >/dev/null 2>&1 fi done done echo 'done'

      

    使用方式:

    ./redis-batch-keys.sh localhost 6379 aaa*

    表示删除本机6379端口的redis中aaa开头的所有key 或者 批量设置本机6379端口的redis中aaa开头的所有key的值为10

  • 相关阅读:
    给年轻人的最好忠告--读书笔记
    设计模式之原型模式(Prototype)
    设计模式之建造者模式(Builder)
    简单工厂模式
    Java并发编程:volatile关键字解析
    深入Java单例模式
    单例模式
    收音代码分析
    蓝牙核心技术概述(一):蓝牙概述
    UART接口
  • 原文地址:https://www.cnblogs.com/zjk1/p/13686555.html
Copyright © 2020-2023  润新知