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

做网站的像素是多少为什么做儿童音乐网站

做网站的像素是多少,为什么做儿童音乐网站,网站正在建设维护中,二建报名时间2023年报名时间1、提前设置热点数据永不过期 2、分布式中用redis分布式锁#xff08;锁可以在多个 JVM 实例之间协调#xff09;、单体中用synchronized#xff08;锁只在同一个 JVM 内有效#xff09; 编写服务类 import com.redisson.api.RLock; import com.redisson.api.RedissonCli…1、提前设置热点数据永不过期 2、分布式中用redis分布式锁锁可以在多个 JVM 实例之间协调、单体中用synchronized锁只在同一个 JVM 内有效 编写服务类 import com.redisson.api.RLock; import com.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service;import java.util.concurrent.TimeUnit;Service public class CacheService {Autowiredprivate StringRedisTemplate redisTemplate;Autowiredprivate RedissonClient redissonClient;private static final String HOT_DATA_KEY hotData;private static final String LOCK_KEY hotDataLock;public String getHotData() {// 尝试从 Redis 中获取热点数据String hotData redisTemplate.opsForValue().get(HOT_DATA_KEY);if (hotData null) {// 获取分布式锁RLock lock redissonClient.getLock(LOCK_KEY);try {// 尝试加锁最多等待100ms锁的过期时间为30秒if (lock.tryLock(100, 30, TimeUnit.SECONDS)) {try {// 再次检查缓存是否过期双重检查hotData redisTemplate.opsForValue().get(HOT_DATA_KEY);if (hotData null) {// 缓存确实过期从数据库加载数据hotData loadHotDataFromDatabase();// 将数据存入 Redis设置过期时间为10分钟redisTemplate.opsForValue().set(HOT_DATA_KEY, hotData, 10, TimeUnit.MINUTES);}} finally {// 释放锁lock.unlock();}}} catch (InterruptedException e) {Thread.currentThread().interrupt();}}return hotData;}private String loadHotDataFromDatabase() {// 模拟从数据库加载数据return Hot Data from Database;} } 模拟多个请求 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component;import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;Component public class CacheTestRunner implements CommandLineRunner {Autowiredprivate CacheService cacheService;Overridepublic void run(String... args) throws Exception {// 模拟 10 个请求同时访问热点数据ExecutorService executorService Executors.newFixedThreadPool(10);for (int i 0; i 10; i) {executorService.submit(() - {String hotData cacheService.getHotData();System.out.println(Thread Thread.currentThread().getId() got hot data: hotData);});}executorService.shutdown();} } Thread 12 got hot data: Hot Data from Database Thread 13 got hot data: Hot Data from Database Thread 14 got hot data: Hot Data from Database ... 所有线程最终都会获取到相同的数据但只有第一个线程会去加载数据避免了缓存击穿问题。 单体应用 在单体应用中所有请求都运行在同一个 JVM 实例中因此可以使用 synchronized 来同步线程。 java复制 Service public class CacheService {Autowiredprivate StringRedisTemplate redisTemplate;private static final String HOT_DATA_KEY hotData;private static final Object lock new Object(); // 用于同步的锁对象public String getHotData() {// 尝试从 Redis 中获取热点数据String hotData redisTemplate.opsForValue().get(HOT_DATA_KEY);if (hotData null) {synchronized (lock) { // 使用 synchronized 同步// 再次检查缓存是否过期双重检查hotData redisTemplate.opsForValue().get(HOT_DATA_KEY);if (hotData null) {// 缓存确实过期从数据库加载数据hotData loadHotDataFromDatabase();// 将数据存入 Redis设置过期时间为10分钟redisTemplate.opsForValue().set(HOT_DATA_KEY, hotData, 10, TimeUnit.MINUTES);}}}return hotData;}private String loadHotDataFromDatabase() {// 模拟从数据库加载数据return Hot Data from Database;} }
http://www.w-s-a.com/news/764724/

相关文章:

  • 网站建设深圳哪家好世界500强企业招聘网站
  • 如何减少网站建设中的错误温州网站公司哪家好
  • 宜章网站建设北京定制公交网站
  • 怎么让谷歌收录我的网站郑州网站建设更好
  • 在线视频网站开发方案phpaspnet网站开发实例视频
  • 正常做一个网站多少钱网站开发所遵循
  • 西部数码网站备份领英创建公司主页
  • 中山网站建设文化平台成都电商app开发
  • 无锡网站推广公司排名中国十大网站建设
  • 网站建设报价怎么差别那么大深圳开发公司网站建设
  • 京东商城网站建设方案书建设网站平台
  • 如何查询网站建设时间赤峰建网站的电话
  • 域名购买网站有哪些公司企业邮箱管理制度
  • 阿里云服务起做网站抖音seo推荐算法
  • 免费建站工具机械网站建设公司推荐
  • 怎么用自己主机做网站_如何做简单的网站
  • 阿里巴巴国际站跨境电商平台为什么有点网站打不开
  • 甘肃做网站哪家好网站开发 都包含什么语言
  • 合肥哪里有做网站的广告型网站怎么做的
  • 用dede做的网站国外免费空间哪个好
  • dede个人网站模板企点
  • 韩雪个人网站wordpress 怎么添加网站备案信息
  • 个人网站可以做地方技能培训班
  • 品牌营销策略研究无锡 网站 seo 优化
  • 在线推广网站的方法有哪些织梦网站首页目录在哪
  • 做爰全过程免费网站的视频做网站的几个步骤
  • cpa建站教程青海西宁制作网站企业
  • 简易的在线数据库网站模板网站多服务器建设
  • 成都seo网站建设花店网页模板html
  • 义乌市网站制作网络营销策略名词解释