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

 


__EOF__

  • 本文作者: 久曲健的测试窝
  • 本文链接: https://www.cnblogs.com/longronglang/p/9952820.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。