介绍:欢迎收看友盟+技术干货第三期内容:Redis集群环境下如何根据前缀批量删除缓存.希望能在实际应用中对开发者有所帮助。1.后台数据源列表增加缓存支持。types字段可以传多个值,比如app、mini、web等,会构建如下缓存key,application_list:123456:appapplication_list:123456:miniapplication_list:123456:webapplication_list:123456:app,miniapplication_list:123456:app,webapplication_list:123456:mini,webapplication_list:123456:app,mini,web...创建应用、更新应用或删除应用时,需要批量删除旧版本缓存。二、思路1、根据前缀application_list:123456,查询所有相关key2、遍历key,执行delete/***removecache**@paramprefixprefix*/publicstaticvoiddeleteByPrefix(Stringprefix){longstart=系统.currentTimeMillis();设置键;试试{keys=jedisCluster.keys(CacheKeyUtils.buildCacheKey(prefix,"*"));LOGGER.info("cachekeys{}withprefix{}",keys,prefix);if(keys!=null&&!keys.isEmpty()){jedisCluster.del(keys.toArray(newString[keys.size()]));}}catch(Exceptione){LOGGER.error("cachedeleteByPrefixerror,prefix={}",prefix,e);抛出新的BusinessException(CoreErrorEnum.CACHE_DELETE_ERROR,前缀);}longend=System.currentTimeMillis();LOGGER.info("cachedeleteByPrefixsuccess,prefix={},cost{}ms",prefix,(end-start));}3.按照这个写题,执行报错,"JedisClusteronlysupportsKEYScommands带有包含散列标签的模式(大括号括起来的字符串)“RedisClusterster采用虚拟slot划分,所有key根据hash函数映射到0~16383的整数slot。计算公式为:slot=CRC16(key)%16384每个节点负责维护一部分slot和映射到slot的key-value数据,如图:4.该方案使用HashTag生成一个缓存Keyif(StringUtils.isNotEmpty(platform)){cacheKey=CacheKeyUtils.buildCacheKey(CacheKeyUtils.buildHashTag(CacheConstant.APPLICATION_LIST,String.valueOf(userId)),"platform",platform);}elseif(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...缓存用户下的全量数据源。每次从缓存或数据库中查询当前用户下的所有数据源,并根据参数进行过滤。原文链接本文为阿里云原创内容,未经许可不得转载。