日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

技术实践第三期|HashTag在Redis集群环境下的使用

發布時間:2024/8/23 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 技术实践第三期|HashTag在Redis集群环境下的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:歡迎了解友盟+技術干貨第三期內容:Redis集群環境如何按照前綴批量刪除緩存。希望能對開發者們在實際應用中有所幫助。

一、背景

數據源列表添加緩存支持,types字段可傳多值,如app, mini, web等,會構建如下緩存key,

  • application_list:123456:app
  • application_list:123456:mini
  • application_list:123456:web
  • application_list:123456:app,mini
  • application_list:123456:app,web
  • application_list:123456:mini,web
  • application_list:123456:app,mini,web
  • ...

當創建應用,更新應用或刪除應用的時候,需要批量刪除舊版本緩存。

二、思路

1.按照前綴 `application_list:123456`,查詢所有相關的key

2.遍歷keys,執行刪除

/*** 移除緩存** @param prefix prefix*/ public static void deleteByPrefix(String prefix) {long start = System.currentTimeMillis();Set<String> keys;try {keys = jedisCluster.keys(CacheKeyUtils.buildCacheKey(prefix, "*"));LOGGER.info("cache keys {} with prefix {}", keys, prefix);if (keys != null && !keys.isEmpty()) {jedisCluster.del(keys.toArray(new String[keys.size()]));}} catch (Exception e) {LOGGER.error("cache deleteByPrefix error, prefix = {}", prefix, e);throw new BusinessException(CoreErrorEnum.CACHE_DELETE_ERROR, prefix);}long end = System.currentTimeMillis();LOGGER.info("cache deleteByPrefix success, prefix = {}, cost {} ms", prefix, (end - start)); }

三、問題

按照這個寫完,執行報錯,"JedisCluster only supports KEYS commands with patterns containing hash-tags ( curly-brackets enclosed strings )"

Redis Cluster 采用虛擬槽分區,所有的根據哈希函數映射到 0~16383 整數槽內,計算公式:slot = CRC16(key) % 16384。每個節點負責維護一部分槽以及槽所映射的鍵值數據,如圖所示:

四、方案

使用HashTag生成緩存Key

if (StringUtils.isNotEmpty(platform)) {cacheKey = CacheKeyUtils.buildCacheKey(CacheKeyUtils.buildHashTag(CacheConstant.APPLICATION_LIST, String.valueOf(userId)), "platform",platform); } else if (types != null && !types.isEmpty()) {cacheKey = CacheKeyUtils.buildCacheKey(CacheKeyUtils.buildHashTag(CacheConstant.APPLICATION_LIST, String.valueOf(userId)), "types",types.stream().sorted().collect(Collectors.joining(","))); } else {cacheKey = CacheKeyUtils.buildCacheKey(CacheKeyUtils.buildHashTag(CacheConstant.APPLICATION_LIST, String.valueOf(userId))); }
  • {application_list:123456}:app
  • {application_list:123456}:mini
  • {application_list:123456}:web
  • {application_list:123456}:app,mini
  • {application_list:123456}:app,web
  • {application_list:123456}:mini,web
  • {application_list:123456}:app,mini,web
  • ...

緩存用戶下全量的數據源

每次從緩存或者數據庫查詢當前用戶下的所有數據源,按照參數篩選。

原文鏈接

本文為阿里云原創內容,未經允許不得轉載。?

總結

以上是生活随笔為你收集整理的技术实践第三期|HashTag在Redis集群环境下的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美三级在线播放 | 91亚洲精品乱码久久久久久蜜桃 | 色偷偷久久 | 亚洲av无码一区东京热久久 | 一区二区亚洲视频 | 日本福利网站 | 国产精品一区二区三区免费在线观看 | 无码熟妇人妻av | 人妻一区二区在线 | 99精品国产一区 | 日韩福利视频 | 亚洲福利电影 | 成人啪啪18免费游戏链接 | 国产伦精品一区二区三区视频黑人 | 成人污污视频在线观看 | 国产污在线观看 | 成人h动漫精品一区二区无码 | 日韩亚洲国产精品 | 国产美女自慰在线观看 | 高潮久久久 | 免费黄网在线观看 | 综合久久综合久久 | 欧美freesex黑人又粗又大 | 国产三级av在线播放 | 久久久.com | 大尺度av | 91色视频| 激情六月综合 | 伊人222成人综合网 亚洲日本中文 | 两性免费视频 | 欧美sese | 波多野结衣伦理 | 热久久久久 | 成人h动漫精品一区二区下载 | 欧美在线视频a | 欧美一区成人 | 国内av| 特黄特色免费视频 | 亚洲午夜一区 | 乳孔很大能进去的av番号 | 天天操免费视频 | 影音先锋每日资源 | 久久久久国产精品熟女影院 | 性高湖久久久久久久久aaaaa | 疯狂伦交 | 蜜臀aⅴ国产精品久久久国产老师 | 白嫩白嫩国产精品 | 影音先锋制服丝袜 | 国内精品第一页 | 超碰91在线观看 | 亚洲成人精品一区 | 亚洲www在线观看 | 久久亚洲精品石原莉奈 | 久久久夜夜夜 | 免费看黄在线网站 | 美女网站免费 | 日日撸夜夜撸 | 香蕉视频911 | av福利网 | 久久久久亚洲av无码a片 | 一级美女大片 | 五月婷影院 | 国产一区二区三区四区 | 一级淫片免费看 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 成年人在线观看视频 | 91毛片在线观看 | 91在线欧美 | 麻豆www. | 激情小说欧美色图 | 天堂网www. | 亚洲成人欧美 | 哪里可以免费看毛片 | 99精品欧美一区二区蜜桃免费 | 中文字幕一区二区三区在线不卡 | 日韩久久在线 | 国产乱人乱精一区二视频国产精品 | 日韩毛片儿 | 涩涩成人 | 色婷婷基地 | 婷婷综合国产 | 日韩一级黄 | 影音先锋激情 | 亚洲av无码一区二区三区在线播放 | 国产美女在线看 | 国产深夜福利在线 | 日韩电影中文字幕在线观看 | 欧美一线天| 波多野结衣av中文字幕 | 欧美在线你懂的 | 一级日韩片 | 国产成人a人亚洲精品无码 在线aa | 欧美亚洲国产精品 | 国产高清视频在线免费观看 | 天天操天天拍 | 91老师国产黑色丝袜在线 | 亚州一级 | av在线h| 激情综合区 |