Redis批量刪除Key的三種方式小結(jié)
Redis 中有刪除單個 Key 的指令 del,但好像沒有批量刪除 Key 的指令,不過我們可以借助 Linux的 xargs 指令來完成這個動作
一.使用命令行批量刪除redis的key
語法
./redis-cli -h IP -p PORT -a PASSWORD -n NUM keys ‘key*’ | xargs ./redis-cli -h IP -p PORT -a PASSWORD -n NUM del
IP:redis服務器的IP地址PORT:redis服務的端口PASSWORD :redis服務的密碼NUM:redis庫的下標
記得以上批量刪除,需要退出redis的命令行模式下操作。必須要指定redis的路徑
連上redis
./redis-cli -h ip -p 端口 -a 密碼選擇數(shù)據(jù)庫
select 數(shù)據(jù)庫下標
模糊查詢key是否存在
keys ‘UPLOAD_*’
執(zhí)行exit命令 退出redis刪除 端口為 6585 密碼為 123456 且數(shù)據(jù)庫為1 中所有UPLOAD_開頭的key
/usr/bin/redis-cli -n 1 -p 6585 -a 123456 keys ‘UPLOAD_*’ | xargs /usr/bin/redis-cli -n 1 -p 6585 -a 123456 del
二.使用圖形界面工具RedisDesktopManager
新版本的RedisDesktopManager目前支持通過分組批量刪除key
打開軟件,點擊左下角的“Connect to Redis Server”新建redis鏈接
配置:
連接的別名(Name:自定義) Host(redis服務的ip) 端口(port) 密碼(Auth)連接到redis服務
選擇庫,并模糊匹配key
在需要刪除的key分組上右擊“Delete Namaspace”刪除分組
三.使用jedis批量刪除keys
引入jedis包
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.0</version> </dependency>
使用jedisApi連接redis
//連接redis ,redis的默認端口是6379 Jedis jedis = new Jedis ("localhost",6379); //驗證密碼,如果沒有設(shè)置密碼這段代碼省略 jedis.auth("password"); //連接 jedis.connect(); //斷開連接 jedis.disconnect();
編寫批量刪除的方法
方法將需要刪除的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(); }
到此這篇關(guān)于Redis批量刪除Key的三種方式小結(jié)的文章就介紹到這了,更多相關(guān)Redis批量刪除Key內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis教程(六):Sorted-Sets數(shù)據(jù)類型
這篇文章主要介紹了Redis教程(六):Sorted-Sets數(shù)據(jù)類型,本文講解了Sorted-Sets數(shù)據(jù)類型概述、相關(guān)命令列表、命令使用示例、應用范圍等內(nèi)容,需要的朋友可以參考下2015-04-04