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");
    }
}
原文地址:https://www.cnblogs.com/longronglang/p/9952820.html