思路:
1、鏈接redis數據庫,連接成功
2、js.del(key),按照指定的key進行刪除,封裝刪除方法
3、js.keys("*"),獲取所有鍵keys的集合,對set集合進行遍歷
4、對遍歷結果進行判斷,包含關鍵字的,即想刪除的,都調用封裝好的刪除方法即可
示例代碼
import org.apache.log4j.Logger; import org.testng.annotations.Test; import redis.clients.jedis.Jedis; import java.util.Iterator; import java.util.Set; /** * @author rong.rong * redis操作類 */ public class RedisDBHelper { static Jedis js = null; public static Logger logger = Logger.getLogger(RedisDBHelper.class); private static String hostUrl = BaseInfo.getInfo("hostUrl"); private static int hostPort = Integer.parseInt(BaseInfo.getInfo("hostPort")); private static String authPassWord = BaseInfo.getInfo("authPassWord"); /** * 鏈接redis數據庫,進行初始化 * * @return:返回是否初始化鏈接成功 */ public static boolean init() { if (js == null) { js = new Jedis(hostUrl, hostPort); js.auth(authPassWord); } if (js != null) { logger.info("初始化成功"); return true; } else { return false; } } /** * 刪除數據 * * @param key:要刪除數據的key * @return:返回boolean值,表示是否刪除成功 */ public static boolean delete(String key) { if (js.exists(key)) { if (js.del(key) == 1) { logger.info("刪除數據成功"); return true; } else { logger.info("刪除數據失敗"); return false; } } else { logger.info(key + "不存在"); return false; } } /** * 按照關鍵字刪除redis緩存數據 */ public static void deleteData(String keys) { //鏈接redis數據庫,進行初始化 init(); Set<String> set = js.keys("*"); if (set.size() != 0) { Iterator<String> it = set.iterator(); while (it.hasNext()) { String key = it.next(); if (key.contains(keys)) { logger.info(key); delete(key); } } } else { logger.info("數據庫暫時沒有數據"); } //關閉鏈接 unInit(); } /** * 關閉鏈接 */ public static void unInit() { if (js != null) { js.close(); js = null; } } @Test public void test() { deleteData("key"); } }
