当前位置: 首页 > wzjs >正文

织梦圈子如何调用网站默认模板营销推广方案ppt案例

织梦圈子如何调用网站默认模板,营销推广方案ppt案例,济南网站优化推广,深圳筑造建设有限公司网站热点Key拆分方案实现 一、核心拆分策略 热点Key拆分的核心思想是将单个高频访问Key分解为多个子Key,分散存储到不同Redis节点,降低单节点压力。以下是具体实现方案: 二、实现方式 1. 业务层哈希分片实现 创建Key分片工具类,通…

热点Key拆分方案实现

一、核心拆分策略

热点Key拆分的核心思想是将单个高频访问Key分解为多个子Key,分散存储到不同Redis节点,降低单节点压力。以下是具体实现方案:

二、实现方式
1. 业务层哈希分片实现

创建Key分片工具类,通过哈希取模方式分散Key:

package plus.gaga.infrastructure.redis;import org.springframework.util.StringUtils;public class KeyShardingUtil {// 分片数量,建议与Redis节点数保持一致private static final int SHARD_COUNT = 16;/*** 生成分片Key* @param originalKey 原始Key* @param shardParam 分片参数(如用户ID、商品ID等)* @return 分片后的Key*/public static String generateShardingKey(String originalKey, String shardParam) {if (StringUtils.isEmpty(originalKey) || StringUtils.isEmpty(shardParam)) {throw new IllegalArgumentException("Key and shardParam cannot be empty");}// 基于分片参数哈希取模int shardIndex = Math.abs(shardParam.hashCode()) % SHARD_COUNT;return originalKey + ":shard:" + shardIndex;}
}
2. 在服务层应用分片Key

修改,对热点活动Key进行拆分:

// ... existing code ...
import plus.gaga.infrastructure.redis.KeyShardingUtil;@Slf4j
@Service
public class LotteryStrategyServiceImpl implements LotteryStrategyService {// ... existing code ...@Overridepublic boolean tryAcquire(String activityId, String userId) {// 对热点活动ID进行分片String shardingKey = KeyShardingUtil.generateShardingKey("limit:strategy:" + activityId, userId);long timestamp = System.currentTimeMillis();String member = userId + "_" + timestamp;Long result = redisTemplate.execute(rateLimitScript,Collections.singletonList(shardingKey),1000, // 每分片QPStimestamp,member,60 // 窗口时间(秒));return result != null && result == 1;}// 热点数据查询示例@Overridepublic ActivityVO queryActivity(String activityId, String userId) {// 1. 尝试从本地缓存获取ActivityVO localActivity = localCache.get(activityId);if (localActivity != null) {return localActivity;}// 2. 从Redis分片查询String shardingKey = KeyShardingUtil.generateShardingKey("activity:" + activityId, userId);ActivityPO activityPO = (ActivityPO) redisTemplate.opsForValue().get(shardingKey);// 3. 缓存预热到本地if (activityPO != null) {localCache.put(activityId, convert(activityPO), Duration.ofMinutes(5));return convert(activityPO);}// 4. 从数据库查询并回填缓存activityPO = activityMapper.selectById(activityId);if (activityPO != null) {redisTemplate.opsForValue().set(shardingKey, activityPO, Duration.ofHours(1));localCache.put(activityId, convert(activityPO), Duration.ofMinutes(5));return convert(activityPO);}return null;}
}
3. Redis集群配置

在application.yml中配置Redis集群,确保分片Key分布到不同节点:

spring:redis:cluster:nodes:- 192.168.1.101:6379- 192.168.1.102:6379- 192.168.1.103:6379max-redirects: 3lettuce:pool:max-active: 16max-idle: 8min-idle: 4
三、高级优化策略
1. 动态分片调整

实现分片数量动态调整,应对流量变化:

// 在KeyShardingUtil中添加动态调整方法
public static void setShardCount(int count) {if (count > 0) {SHARD_COUNT = count;}
}
2. 热点检测与自动分片

集成热点Key检测,自动对超过阈值的Key进行分片:

@Component
public class HotKeyMonitor {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@Scheduled(fixedRate = 60000) // 每分钟检测一次public void monitorHotKeys() {// 获取Redis热点Key列表List<String> hotKeys = getHotKeysFromRedis();for (String key : hotKeys) {if (needSharding(key)) {// 自动分片处理shardHotKey(key);}}}
}
3. 读写分离增强

结合读写分离,将分片读请求分散到从节点:

// 配置读写分离RedisTemplate
@Bean
public RedisTemplate<String, Object> readWriteSplitRedisTemplate() {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(readWriteSplitConnectionFactory());// 其他配置...return template;
}
四、注意事项
  1. 数据一致性:拆分后的Key需要同步更新,可使用Redis事务或分布式锁保证
  2. 分片粒度:根据业务场景调整分片数量(SHARD_COUNT),建议设置为Redis节点数的2-4倍
  3. 本地缓存:结合Caffeine等本地缓存框架,减少跨节点查询
  4. 监控告警:通过Prometheus监控各分片Key的访问频率,设置阈值告警
  5. 回滚机制:设计分片失败的降级方案,确保系统可用性

通过以上方案,可有效将热点Key的访问压力分散到多个Redis节点,提升系统整体吞吐量和稳定性。

http://www.dtcms.com/wzjs/20340.html

相关文章:

  • 网站优化的核心不包括网站建设公司简介
  • 宁波专业优化网站制作公司国际免费b站
  • 设计怎么学灰色行业seo
  • 贵阳网站建设公司排行广州seo成功案例
  • 老阿姨哔哩哔哩b站肉片入口直播深圳网络营销和推广渠道
  • 宠物网站建设方案爱站seo工具包官网
  • 移动端网站咋做制作一个网页的步骤
  • 做网站没有公网做外贸有哪些网站平台
  • 阿里云的网站建设好不好搜索引擎优化的实验结果分析
  • ecshop 网站价格关键词分析软件
  • 网站建设的文件谈谈你对seo概念的理解
  • 长春网站优化实战企业网站开发制作
  • 如何做网签合同 网站佛山百度快速排名优化
  • 企业门户网站建设jsp郑州百度推广公司电话
  • 在那儿能找网站建设国家市场监督管理总局
  • 负责网站开发的岗位营销推广活动策划
  • 宜昌建设网站公司比较成功的网络营销案例
  • 做网站数据库怎么整yahoo搜索
  • 石家庄住房建设局网站新手如何做网上销售
  • dedecms免费网站模板友情链接出售网
  • 南昌哪里有网站建设重庆森林电影
  • 网站开发团队简介合肥网站优化公司
  • 视频网站做app开发的semseo是什么意思
  • 政府门户网站建设的必要性站长工具seo综合查询收费吗
  • 个人网站内容有哪些内容查网站流量查询工具
  • 网站建设好的公司专业服务爱站工具包官网下载
  • wordpress淘宝客自动采集器长沙网站优化体验
  • 中铁建设集团门户网站登陆有名的seo外包公司
  • 做网站用到什么技术百度站长工具是什么意思
  • 河源网站建设公司网络seo培训