Linux中根据key模糊删除redis集群中的数据

    xiaoxiao2022-06-30  123

    场景:将用户和商户的支付宝和微信当日限额的额度累加放到redis中,时间当日失效,因为测试要删除所有的当日限额的数据

    1.查看redis的安装目录

    ps -ef|grep redis

    2.进入redis-server的目录下,如图,执行下面的命令

    cd /data/web/redis/src ls

    3.执行完会发现有redis-cli和redis-server,此时创建redis_del.sh脚本文件

    touch redis_del.sh

    4.编辑redis_del.sh文件

    vim redis_del.sh

    5.按i进入编辑模式,根据自己redis填写信息,我的脚本如下(对应你的改下值就可以了):

    #!/bin/sh redis_common=/data/web/redis/src/redis-cli redis_server=20.200.54.230 cluster_port01=7001 cluster_port02=7002 cluster_port03=7003 cluster_port04=7004 cluster_port05=7005 cluster_port06=7006 $redis_common -c -h $redis_server -p $cluster_port01 keys $1 | xargs -i ./redis-cli -h $redis_server -p $cluster_port01 del {} $redis_common -c -h $redis_server -p $cluster_port02 keys $1 | xargs -i ./redis-cli -h $redis_server -p $cluster_port02 del {} $redis_common -c -h $redis_server -p $cluster_port03 keys $1 | xargs -i ./redis-cli -h $redis_server -p $cluster_port03 del {} $redis_common -c -h $redis_server -p $cluster_port04 keys $1 | xargs -i ./redis-cli -h $redis_server -p $cluster_port04 del {} $redis_common -c -h $redis_server -p $cluster_port05 keys $1 | xargs -i ./redis-cli -h $redis_server -p $cluster_port05 del {} $redis_common -c -h $redis_server -p $cluster_port06 keys $1 | xargs -i ./redis-cli -h $redis_server -p $cluster_port06 del {}

    6.esc退出编辑模式,按shift+z+z保存或者:wq!保存,然后解释一下内容吧

    #!/bin/sh    这是放在第一行必须有的,#!/bin/bash也可以

    redis_common:redis-cli的路径,可以用pwd命令查看路径,但是最后放上redis-cli

    redis_server:服务器的ip

    cluster_port01——cluster_port06:redis集群的6个端口,我的是7001——7006

    -c:启动集群模式,进入集群服务

    -h:后面加服务器主机的ip

    -p:后边加对应-h服务器主机的端口号

    $1:相当于你对应要删除key的一个占位符

    xargs -i: -i 选项告诉 xargs 可以使用{}代替传递过来的参数

    del:就是删除的命令啦

    7.例子:想要删除以user.max.alipay为首的key,可以执行下面的命令

    ./redis_del.sh user.max.alipay*

    8.有对应的key就会显示

    (integer)1

     

    9.以上希望可以帮到很多人,如果有问题希望帮我指出,万分感谢!!!


    最新回复(0)