redis簡(jiǎn)介
redis作為緩存服務(wù)器在項(xiàng)目中經(jīng)常使用
- 使用redis存儲(chǔ)數(shù)據(jù)時(shí),我們經(jīng)常會(huì)將key分組
使用冒號(hào)(:)分組或者其他的自定義前綴方式,如果我們需要清除redis特定的key內(nèi)容時(shí),在命令行下又沒有直接的命令可用,可以使用linux的xargs參數(shù)或者第三方工具
一、使用命令行批量刪除redis的key
首先linux服務(wù)器上需要安裝redis客戶端,然后進(jìn)入到redis-cli命令所在的目錄
./redis-cli -h IP -p PORT -a PASSWORD keys 'key*' | xargs ./redis-cli -h IP -p PORT -a PASSWORD del
- IP:redis服務(wù)器的IP地址
- PORT:redis服務(wù)的端口
- PASSWORD :redis服務(wù)的密碼
例如:
刪除本機(jī)127.0.0.1,默認(rèn)端口6379,密碼為123456的redis服務(wù)上org開頭的key
./redis-cli -h 127.0.0.1 -p 6379 -a 123456 keys 'org*' | xargs ./redis-cli -h 127.0.0.1 -p 6379 -a 123456 del
二、使用圖形界面工具RedisDesktopManager
新版本的RedisDesktopManager目前支持通過分組批量刪除key
-
打開軟件,點(diǎn)擊左下角的“Connect to Redis Server”新建redis鏈接redis-connect.png
- 配置:連接的別名(Name:自定義)、Host(redis服務(wù)的ip)、端口(port)、密碼(Auth)連接到redis服務(wù)
-
在需要?jiǎng)h除的key分組上右擊“Delete Namaspace”刪除分組
del-namespace.png - 注意如果通過工具的Namaspace刪除key分組,key的前綴分別必須使用冒號(hào)“:”進(jìn)行分組,否則無法使用工具刪除
三、使用jedis批量刪除keys
方法將需要?jiǎng)h除的key轉(zhuǎn)換成數(shù)組傳入jedis.del(keys)批量刪除key
// java代碼
public static void deleteByPattern(Jedis jedis, String pattern) {
Set<String> keys = jedis.keys(pattern);
if(keys != null && !keys.isEmpty()) {
String keyArr[] = new String[keys.size()];
jedis.del(keys.toArray(keyArr));
}
}
// jedis的del方法源碼
public Long del(final String... keys) {
checkIsInMultiOrPipeline();
client.del(keys);
return client.getIntegerReply();
}

