|
|
第1行: |
第1行: |
− | [[category:ops]] [[category:redis]] | + | [[category:Container]] |
− | | + | =修改为cst 中国标准时间= |
− | [[Redis-bigkeys]]
| |
− | | |
− | ulink
| |
− | [https://cloud.tencent.com/developer/article/1530197 Redis 高效删除大key]
| |
− | =redis cluster 批量删除key= | |
− | | |
− | == 正则匹配删除 之hello项目的版本==
| |
− | | |
| <pre> | | <pre> |
| | | |
− | redisloop-re.sh
| + | #修改源 |
− | #!/bin/bash
| + | cat /etc/apk/repositories |
− | #Usage 模糊删除 key key name 写在 rr 文件里 如 hello_user_* #这个用法是 bash redisloop-re.sh
| |
− | #for line in `cat $1` #这个用法是 bash redisloop-re.sh rr
| |
− | for line in `cat rr`
| |
− | #cat $1
| |
− | #cat $1 | while read line
| |
− | do
| |
− | #echo $line
| |
| | | |
− | redis-cli -c -h 172.31.22.218 -p 7000 -a hellopass keys $line |xargs -r -t -n1 redis-cli -c -h 172.31.22.218 -p 7000 -a hellopas del
| + | http://mirrors.aliyun.com/alpine/v3.12/main |
− | redis-cli -c -h 172.31.22.218 -p 7001 -a hellopass keys $line | xargs -r -t -n1 redis-cli -c -h 172.31.22.218 -p 7001 -a hellopass del
| + | http://mirrors.aliyun.com/alpine/v3.12/community |
− | redis-cli -c -h 172.31.16.135 -p 7002 -a hellopas keys $line | xargs -r -t -n1 redis-cli -c -h 172.31.16.135 -p 7002 -a hellopass del
| |
− | redis-cli -c -h 172.31.16.135 -p 7003 -a hellopass keys $line | xargs -r -t -n1 redis-cli -c -h 172.31.16.135 -p 7003 -a hellopassw del
| |
− | redis-cli -c -h 172.31.23.43 -p 7004 -a hellopassw keys $line | xargs -r -t -n1 redis-cli -c -h 172.31.23.43 -p 7004 -a hellopass del
| |
− | redis-cli -c -h 172.31.23.43 -p 7005 -a hellopassw keys $line | xargs -r -t -n1 redis-cli -c -h 172.31.23.43 -p 7005 -a hellopas del
| |
− | done
| |
| | | |
| + | apk add --update nodejs npm |
| | | |
| + | #RUN 表明 这是在容器里面的 |
| + | RUN apk add -U tzdata |
| | | |
− | | + | #设置时区 |
− | done
| + | RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ |
− | | + | && echo 'Asia/Shanghai' >/etc/timezone |
| </pre> | | </pre> |
| | | |
− | | + | =安装telnet= |
− | ==在集群中删除多个指定的key == | |
− | | |
| <pre> | | <pre> |
− | 删除单个的 如下
| + | #Alpine镜像中的telnet在3.7版本后被转移至busybox-extras包中 |
− | cat redisloop.sh
| + | apk update |
− | #!/bin/bash | + | apk add busybox-extras |
− | #模糊删除 key 在re.sh 那个脚本里面
| + | telnet smtp.163.com 25 |
− | cat $1 | while read line
| |
− | do
| |
− | | |
− | redis-cli -c -h 172.31.22.218 -p 7000 -a hellopass $line
| |
− | redis-cli -c -h 172.31.22.218 -p 7001 -a hellopass $line
| |
− | redis-cli -c -h 172.31.16.135 -p 7002 -a hellopassw $line
| |
− | redis-cli -c -h 172.31.16.135 -p 7003 -a hellopassw $line
| |
− | redis-cli -c -h 172.31.23.43 -p 7004 -a hellopassw $line
| |
− | redis-cli -c -h 172.31.23.43 -p 7005 -a hellopassw $line
| |
| </pre> | | </pre> |
− |
| |
− |
| |
− |
| |
− | <pre>
| |
− | #pre
| |
− |
| |
− | 删除单个:del key
| |
− |
| |
− | 删除多个:redis-cli -a pass(密码) keys "WX_ACT_USER_KEY_*" | xargs redis-cli -a pass(密码) del
| |
− |
| |
− |
| |
− |
| |
− | #June 19 2020 有空结果一下原来的版本再优化一下
| |
− | cat redis_del_key.sh
| |
− | #!/bin/bash
| |
− | # Usage
| |
− | #redis_list=("host:post" "host:post")
| |
− |
| |
− | redis_list=( "172.16.200.12:7003" "172.16.200.7:7004" "172.16.200.7:7005" "172.16.200.13:7000" "172.16.200.13:7001" "172.16.200.12:7002")
| |
− | #redis_list=( "172.16.200.13:7000" "172.16.200.13:7001" "172.16.200.12:7002")
| |
− | #redis_list=("172.16.200.7:7004")
| |
− | password="3636password"
| |
− |
| |
− | for info in ${redis_list[@]}
| |
− | do
| |
− | echo "开始执行:$info"
| |
− | ip=`echo $info | cut -d : -f 1`
| |
− | port=`echo $info | cut -d : -f 2`
| |
− |
| |
− | for loop in `cat key.txt`
| |
− | do
| |
− | #echo $loop |xargs -t -n1 redis-cli -c -h $ip -p $port -a $password -c del
| |
− | echo $loop |xargs -t -n1 redis-cli -c -h $ip -p $port -a $password -c keys
| |
− | done
| |
− |
| |
− | done
| |
− | echo "success done完成"
| |
− |
| |
− | # cat key.txt
| |
− | infnce:wonderfulCache
| |
− | ext_info
| |
− |
| |
− |
| |
− |
| |
− | #原来的版本
| |
− |
| |
− | del hello_user_*
| |
− |
| |
− | redis-cli keys
| |
− |
| |
− |
| |
− | redis-cli keys "hello_user_*" | xargs redis-cli del
| |
− |
| |
− |
| |
− | ./redis-cli -h IP -p PORT -a PASSWORD keys 'key*' | xargs ./redis-cli -h IP -p PORT -a PASSWORD del
| |
− |
| |
− | redis-cli -c -h 172.31.22.218 -p 7000 -a pass keys 'hello_user_*'| xargs -i redis-cli -c -h 172.31.22.218 -p 7000 -a pass del {}
| |
− | redis-cli -c -h 172.31.22.218 -p 7001 -a pass keys 'hello_user_*'| xargs -i redis-cli -c -h 172.31.22.218 -p 7001 -a pass del {}
| |
− |
| |
− | redis-cli -c -h 172.31.16.135 -p 7002 -a pass keys 'hello_user_*'| xargs -i redis-cli -c -h 172.31.16.135 -p 7002 -a pass del {}
| |
− | redis-cli -c -h 172.31.16.135 -p 7003 -a pass keys 'hello_user_*'| xargs -i redis-cli -c -h 172.31.16.135 -p 7003 -a pass del {}
| |
− |
| |
− | redis-cli -c -h 172.31.23.43 -p 7004 -a pass keys 'hello_user_*'| xargs -i redis-cli -c -h 172.31.23.43 -p 7004 -a pass del {}
| |
− | redis-cli -c -h 172.31.23.43 -p 7005 -a pass keys 'hello_user_*'| xargs -i redis-cli -c -h 172.31.23.43 -p 7005 -a pass del {}
| |
− |
| |
− |
| |
− |
| |
− | #!/bin/bash
| |
− | redis_comm=/usr/local/redis-5.0.3/bin/redis-cli
| |
− | redis_ser01=192.168.50.175
| |
− | redis_ser02=192.168.50.174
| |
− | $redis_comm -c -h $redis_ser01 -p 7001 -a xxx keys $1 | xargs -i $redis_comm -c -h $redis_ser01 -p 7001 -a xxx del {}
| |
− | $redis_comm -c -h $redis_ser02 -p 7001 -a xxx keys $1 | xargs -i $redis_comm -c -h $redis_ser02 -p 7001 -a xxx del {}
| |
− |
| |
− | 运行:
| |
− |
| |
− | ./redis_del_key.sh 匹配的key*
| |
− |
| |
− | err
| |
− |
| |
− | -i {} 都是一定要的
| |
− |
| |
− | redis-cli -n 0 keys "test*" | xargs redis-cli -n 0 del
| |
− | (error) CROSSSLOT Keys in request don't hash to the same slot
| |
− |
| |
− | </pre>
| |
− |
| |
− | =del相关=
| |
− |
| |
− | 命令和DEL十分相似:删除指定的key(s),若key不存在则该key被跳过。但是,相比DEL会产生阻塞,该命令会在另一个线程中回收内存,因此它是非阻塞的。 这也是该命令名字的由来:仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。
| |
− | http://www.redis.cn/commands/unlink.html
| |
− |
| |
− |
| |
− | [https://www.zybuluo.com/phper/note/609318 redis 中pipline,mset, mget使用对比]
| |
− |
| |
− | [https://blog.csdn.net/wojiuguowei/article/details/85096609 redis del与unlink命令用法及实现]
| |
− |
| |
− | [https://yq.aliyun.com/articles/743207 Redis:del/unlink 命令源码解析]
| |
− |
| |
− | [https://www.cnblogs.com/0201zcr/p/9647787.html redis批量删除key 远程批量删除key ]
| |
− |
| |
− |
| |
− | [https://www.cnblogs.com/kiko2014551511/p/11531584.html Redis批量删除key的命令]
| |
− |
| |
− | [https://www.php.cn/redis/447726.html redis中批量删除key的方法]
| |
− |
| |
− | =see also=
| |
− | [https://blog.csdn.net/xujiamin0022016/article/details/103020025?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase 如何优雅地删除Redis大键]
| |
− |
| |
− | [https://blog.csdn.net/yangyangye/article/details/100523387 redis集群批量删除模糊key shell脚本]
| |
− |
| |
− | [https://blog.csdn.net/yangyangye/article/details/100523387 redis集群批量删除模糊key shell脚本]
| |
− |
| |
− | [https://www.cnblogs.com/feng0520/p/11067025.html redis cluster集群批量删除中的key]
| |
− |
| |
− | [https://my.oschina.net/u/1255588/blog/1563672 Redis集群批量删除key]
| |
− |
| |
− | [https://www.cnblogs.com/0201zcr/p/9647787.html redis批量删除key 远程批量删除key ]
| |
− |
| |
− | [https://blog.csdn.net/zj20142213/article/details/80879744 redis集群批量删除指定的key]
| |
− |
| |
− | https://blog.csdn.net/qq_36090419/article/details/80537684
| |
− |
| |
− | [https://www.cnblogs.com/DreamDrive/p/5772198.html Redis中的批量删除数据库中的Key]
| |
− |
| |
− | [https://www.cnblogs.com/DreamDrive/p/5772198.html Redis中的批量删除数据库中的Key]
| |