# evil-redis-key **Repository Path**: heller_sw/evil-redis-key ## Basic Information - **Project Name**: evil-redis-key - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-12-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # evil-redis-key #### 介绍 主要是为了删除redis-cluster中一些需要修改的缓存,通过使用spring-cache 注解生成的key, 只知道key的前缀,而不知道一个具体的key是什么,spring-cache key生成规则是通过方法参数最后拼接而成。 模糊删除key有几种方法,其中第一种通过一个shell 脚本,方法是通过shell脚本 通过 redis-cli -h host -p port cluster nodes 查看集群节点信息,找到master节点然后在每台 master节点通过keys 键的前缀后通过redis-cli集群模式连接使用del 删除,下面是示例 ``` #!/bin/bash redis_comm=/opt/software/redis-4.0.11/src/redis-cli redis_ser01=192.168.0.110 redis_port01=6379 redis_ser02=192.168.0.109 redis_port02=6380 redis_ser03=192.168.0.110 redis_port03=6380 /opt/software/redis-4.0.11/src/redis-cli -c -h 192.168.0.110 -p 6379 keys key*|xargs -i /opt/software/redis-4.0.11/src/redis-cli -c -h 192.168.0.110 -p 6379 del {} /opt/software/redis-4.0.11/src/redis-cli -c -h 192.168.0.110 -p 6380 keys key*|xargs -i /opt/software/redis-4.0.11/src/redis-cli -c -h 192.168.0.110 -p 6380 del {} /opt/software/redis-4.0.11/src/redis-cli -c -h 192.168.0.109 -p 6380 keys key*|xargs -i /opt/software/redis-4.0.11/src/redis-cli -c -h 192.168.0.109 -p 6380 del {} ``` 另外一种使用shell 脚本 通过scan命令,这种方式需要获取每次遍历的游标,shell 脚本写起来比较麻烦 而且对shell 脚本不是很熟悉,这种方式放弃,另外**_redis keys 当redis数据量比较大时,容易引起服务暂时 不可用或者宕机_**,所以不推荐使用keys而是使用另外一种scan方式,不过在使用时耗时较长,可能要到分钟级 #### 使用说明 1. 删除所有模糊匹配前缀的key http:ip:port/redis/prefix-del?prefixKey=前缀key 2. 删除指定key 1) http:ip:port/redis/prefix-list?prefixKey=前缀key 获取所有前缀key的键 2) http:ip:port/redis/del?key=具体key 删除对应具体的key的键 通过swagger-ui 或者直接使用上述的url 即可![avatar](swagger-ui.png)