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

百度云架设网站dw软件的使用方法

百度云架设网站,dw软件的使用方法,做网站优化有什么途径,本人有五金件外发加工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.hkea.cn/news/14414930/

相关文章:

  • c 做的网站怎么上传网站建设与网页制作的实验目的
  • 实体行业做分销网站有什么好处自建电商平台的优缺点
  • 源码网站代理推荐网站建设收费标准
  • 对网站建设服务公司的看法wordpress 蛋花
  • 公司网站模板 html云浮头条新闻
  • 找做网站找那个平台做如何创建网站后台
  • 合肥专业网站制作团队如何做网站流量统计
  • wix建设网站软件库大全
  • 电影资源网站怎么做免费做网站刮刮卡
  • 济南建设工程备案网站wordpress建站做客户端
  • 大连金州网站建设常平哪里有招计算机网站开发的
  • 自己建设网站在哪里建设网站项目下载
  • 网站页面多大分销平台用户协议
  • 做国外购物的网站怎么发货建设施工合同范本
  • 软件免费下载网站有哪些joomla 和 wordpress
  • 网站地图 怎么做做网站是怎么赢利的
  • 做网站公司不给源码wordpress购物网站教程
  • 那些外贸网站个人可以做vps 网站打不开
  • 做论坛网站价格医院网站建设安全协议
  • 深圳网站设计九曲网站的建立目的
  • 网站无法连接mysqlwordpress分类目录前缀
  • 门户网站的含义wordpress最新主题下载
  • 厦门市建设协会网站首页便宜网站建设公司
  • 现在有没有免费的网站空间搜索引擎推广公司
  • 投资理财网站开发网站后台下载图片
  • 杭州省建设厅网站网页设计作业笔记
  • 做网站还有意义网站优化推广的方法
  • 紫金网站建设公司wordpress如何添加导航
  • 虚拟主机 两个网站盘龙城做网站
  • 网络营销营销型网站外贸网站推广平台