<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      springboot~redis的hash結(jié)構(gòu)為key設(shè)置過(guò)期策略

      redis配置文件開(kāi)啟鍵過(guò)期

      #  The "notify-keyspace-events" takes as argument a string that is composed
      #  of zero or multiple characters. The empty string means that notifications
      #  are disabled.
      #
      #  Example: to enable list and generic events, from the point of view of the
      #           event name, use:
      #
      #  notify-keyspace-events Elg
      #
      #  Example 2: to get the stream of the expired keys subscribing to channel
      #             name __keyevent@0__:expired use:
      #
      #  notify-keyspace-events Ex
      #
      #  By default all notifications are disabled because most users don't need
      #  this feature and the feature has some overhead. Note that if you don't
      #  specify at least one of K or E, no events will be delivered.
      

      springboot中實(shí)現(xiàn)鍵后的處理邏輯

      • 訂閱邏輯
      public class KeyExpiredEventMessageListener implements MessageListener {
      
      	private final RedisTemplate redisTemplate;
      
      	public KeyExpiredEventMessageListener(RedisTemplate redisTemplate) {
      		this.redisTemplate = redisTemplate;
      	}
      
      	@Override
      	public void onMessage(Message message, byte[] pattern) {
      		String expiredKey = message.toString();
      		// 處理鍵過(guò)期事件邏輯
      		System.out.println("Key expired: " + expiredKey);
      		String[] keys = expiredKey.split("\\:");
      		redisTemplate.opsForHash().delete(keys[0], keys[1]);
      	}
      
      }
      
      • 注冊(cè)組件
      	@Bean
      	public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory connectionFactory,
      																	   KeyExpiredEventMessageListener keyExpiredEventMessageListener) {
      		RedisMessageListenerContainer container = new RedisMessageListenerContainer();
      		container.setConnectionFactory(connectionFactory);
      		container.addMessageListener(keyExpiredEventMessageListener, new PatternTopic("__keyevent@*__:expired"));//__keyevent@0__:expired  #0代表redis中的db索引
      		return container;
      	}
      
      	@Bean
      	public KeyExpiredEventMessageListener keyExpiredEventMessageListener(RedisTemplate redisTemplate) {
      		return new KeyExpiredEventMessageListener(redisTemplate);
      	}
      
      • 測(cè)試demo
      @Test
      public void hashsetExpire4() throws InterruptedException {
      	redisTemplate.opsForHash().put("h_set4", "a", "1");
      	redisTemplate.opsForHash().put("h_set4", "b", "2");
      	redisTemplate.opsForValue().set("h_set4:b", "2");
      	redisTemplate.expire("h_set4:b", Duration.ofSeconds(10));// 多次設(shè)置時(shí),以最后一次為準(zhǔn),這時(shí)有效期重設(shè)為1分
      	Thread.sleep(1000 * 60);
      
      }
      

      測(cè)試用例中,在10秒后,由于h_set4:b這個(gè)鍵過(guò)期了,所以觸發(fā)了KeyExpiredEventMessageListener事件,最后將對(duì)應(yīng)的hashset里的鍵被動(dòng)刪除。

      posted @ 2024-04-28 10:41  張占嶺  閱讀(358)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲人成网线在线播放VA| 国产AV影片麻豆精品传媒| 亚洲欧美牲交| 亚洲国产一区二区三区| 亚洲欧美人成人让影院| 国产伦精品一区二区亚洲| 免费无码午夜福利片| 麻豆成人精品国产免费| 国产精品三级爽片免费看| 久久精品国产99国产精品严洲| 久久夜色撩人精品国产小说 | 国产乱色国产精品免费视频| 亚洲精品有码在线观看| 日日碰狠狠躁久久躁96avv| 精品国产一区AV天美传媒| 牛牛视频一区二区三区| 日韩亚洲国产中文永久| 久女女热精品视频在线观看| 精品人妻人人做人人爽| 极品无码国模国产在线观看| 久久国产自偷自偷免费一区 | 亚洲岛国成人免费av| 国产美女久久久亚洲综合| 2019香蕉在线观看直播视频| 亚洲激情一区二区三区在线 | 精品一卡2卡三卡4卡乱码精品视频 | 国产av一区二区三区久久| 野花社区www视频日本| 天堂在线www天堂中文在线| 色综合天天综合网天天看片| 动漫av网站免费观看| 凹凸国产熟女精品视频| 国产熟女激情一区二区三区 | 久久久久成人精品无码中文字幕| 国产一区二区精品自拍| 99精品热在线在线观看视| 国产精品免费中文字幕| 亚洲日韩欧美丝袜另类自拍 | 亚洲精品美女一区二区| 亚洲一区二区日韩综合久久| 亚洲精品国产字幕久久麻豆|