• 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");
        }
    }
  • 相关阅读:
    原生ES-Module在浏览器中的尝试
    常见的web攻击总结
    node第三方模块----nodemailer发送邮件
    08----mockjs处理前端传来的路径,获取?后面的值
    07----mockjs获取前端传递的数据
    05-----Mock.Random 扩展方法
    03----Mock.mock() 生成接口,随机数据
    06----Mock.setup()
    十一. for of
    十.数组解构
  • 原文地址:https://www.cnblogs.com/longronglang/p/9952820.html
Copyright © 2020-2023  润新知