|
|
第1行: |
第1行: |
− | [[category:ops]] [[category:redis]]
| + | =1直接修改= |
| + | 直接进入容器中修改/etc/hosts |
| | | |
− | [[Redis-bigkeys]]
| + | 缺点:重启容器后,增加的内容会丢失 |
− | | |
− | ulink
| |
− | [https://cloud.tencent.com/developer/article/1530197 Redis 高效删除大key]
| |
− | =redis cluster 批量删除key=
| |
| <pre> | | <pre> |
− | #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")
| + | NS1=apisns..com |
− | #redis_list=( "172.16.200.13:7000" "172.16.200.13:7001" "172.16.200.12:7002")
| + | NS2=webappsns..com |
− | #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`
| + | docker exec -i docker-compose-nuxt_nuxt-pc_1 sh -c "echo '114.55.202.3 ${NS1}'>>/etc/hosts" |
− | do
| + | docker exec -i docker-compose-nuxt_nuxt-pc_1 sh -c "echo '114.55.202.3 ${NS2}'>>/etc/hosts" |
− | #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
| + | docker exec -i docker-compose-nuxt_nuxt-pc_1 sh -c "cat /etc/hosts" |
− | echo "success done完成"
| |
| | | |
− | # cat key.txt
| |
− | infnce:wonderfulCache
| |
− | ext_info
| |
| | | |
| + | 如何还原hosts |
| | | |
| + | cd /data/docker-compose-nuxt/ |
| + | docker-compose down && docker-compose up -d |
| | | |
− | #原来的版本
| + | </pre> |
| | | |
− | del hello_user_*
| + | =2= |
− | | + | <pre> |
− | redis-cli keys
| + | 在docker-compose.yml文件中,通过配置参数extra_hosts实现。例如: |
− | | |
− | | |
− | 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
| |
| | | |
| + | extra_hosts: |
| + | - "somehost:162.242.195.82" |
| + | - "otherhost:50.31.209.229 |
| </pre> | | </pre> |
| | | |
− | =see also= | + | =3= |
− | | + | 通过参数 --add-host来添加域名和IP信息到容器的/etc/hosts文 |
− | | + | docker run --add-host=myhostname:10.180.8.1 --name test -it debian |
− | [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 ] | + | 还有个 参考的[[容器绑hosts]] |
| + | [[category:container]] |
1直接修改
直接进入容器中修改/etc/hosts
缺点:重启容器后,增加的内容会丢失
NS1=apisns..com
NS2=webappsns..com
docker exec -i docker-compose-nuxt_nuxt-pc_1 sh -c "echo '114.55.202.3 ${NS1}'>>/etc/hosts"
docker exec -i docker-compose-nuxt_nuxt-pc_1 sh -c "echo '114.55.202.3 ${NS2}'>>/etc/hosts"
docker exec -i docker-compose-nuxt_nuxt-pc_1 sh -c "cat /etc/hosts"
如何还原hosts
cd /data/docker-compose-nuxt/
docker-compose down && docker-compose up -d
2
在docker-compose.yml文件中,通过配置参数extra_hosts实现。例如:
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229
3
通过参数 --add-host来添加域名和IP信息到容器的/etc/hosts文
docker run --add-host=myhostname:10.180.8.1 --name test -it debian
还有个 参考的容器绑hosts