java操作redis之按照關鍵字刪除緩存數據


思路:

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");
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM