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

推广自己的网站需要怎么做网络服务网络推广

推广自己的网站需要怎么做,网络服务网络推广,pc域名适配代码嵌入wordpress网页头部是指写到哪个文件里,做网站就上微赞网Cache Aside策略 Cache Aside 是一种常用的缓存和数据库读写策略,“先更新数据库,再删除缓存”是其中更新数据的一种方式。 1. 原理:当有数据更新操作时,先对数据库进行更新操作,成功后再将对应的缓存数据删除。后续…

Cache Aside策略

Cache Aside 是一种常用的缓存和数据库读写策略,“先更新数据库,再删除缓存”是其中更新数据的一种方式。
 
1. 原理:当有数据更新操作时,先对数据库进行更新操作,成功后再将对应的缓存数据删除。后续查询该数据时,由于缓存中没有对应数据(已被删除),就会去数据库中查询最新的数据,然后再将查询到的数据更新到缓存中,以供后续查询使用。
2. 优点:实现相对简单,在大部分情况下能够保证数据库和缓存数据的一致性,适合数据更新频率不是特别高,并且对缓存数据一致性要求不是极其严格的场景。
3. 缺点:在高并发场景下可能会出现数据不一致的问题。比如,线程 A 更新数据库,还没来得及删除缓存时,线程 B 发起读请求,发现缓存存在,就读取了旧的缓存数据,然后线程 A 删除了缓存,后续线程 B 又更新了缓存,导致缓存中是旧数据。
4. 解决办法:可以通过延时双删来减少数据不一致的概率。即先删除缓存,更新数据库,等待一段时间(这个时间要预估数据库更新和其他线程读取的时间)后再删除一次缓存。
 
示例代码(以 Java 语言,结合 Spring 框架,使用 Redis 作为缓存为例):
 

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;@Service
public class UserService {@Autowiredprivate UserRepository userRepository;@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@Transactionalpublic void updateUser(User user) {// 更新数据库userRepository.save(user);// 删除缓存redisTemplate.delete("user:" + user.getId());}
}

 缓存的延时双删策略

缓存的延时双删策略是在Cache Aside策略基础上,为解决高并发下数据不一致问题而优化的一种缓存更新策略。
 
基本原理
 
- 先删除缓存,然后更新数据库。这一步是为了让后续请求能及时从数据库获取最新数据,避免读取到旧的缓存数据。
- 延迟一段时间后再次删除缓存。这段延迟时间是为了确保在数据库更新完成后,可能存在的并发读请求已经从数据库读取到新数据并更新了缓存,此时再次删除缓存可以防止旧数据再次被写入缓存。
 
代码示例
 


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;@Service
public class UserService {@Autowiredprivate UserRepository userRepository;@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@Transactionalpublic void updateUser(User user) {// 第一次删除缓存redisTemplate.delete("user:" + user.getId());// 更新数据库userRepository.save(user);// 模拟延迟,这里使用线程休眠来模拟try {Thread.sleep(1000); } catch (InterruptedException e) {Thread.currentThread().interrupt();}// 第二次删除缓存redisTemplate.delete("user:" + user.getId());}
}


注意事项

  1. 延迟时间设置:需要根据系统中数据库更新的速度、缓存数据的读写频率等实际情况来合理设置。如果设置过短,可能无法达到预期效果;设置过长,则可能导致缓存长时间处于不一致状态。
  2. 并发问题处理:即使采用了延时双删策略,在极端情况下仍可能存在数据不一致的问题。例如,如果在两次删除缓存之间,有大量并发请求同时读取旧缓存数据并更新缓存,还是可能导致缓存中出现旧数据。可以结合其他手段,如分布式锁来进一步保证数据一致性。
  3. 应用场景:适用于对数据一致性要求较高,且存在高并发读写操作的场景,但会增加系统的复杂性和性能开销。
http://www.dtcms.com/wzjs/242213.html

相关文章:

  • 为什么做网站备案的人态度差如何网络营销自己的产品
  • 盘古网站建设物联网开发
  • 做英文网站有用吗子域名在线查询
  • 珠海营销网站建设市场调研报告万能模板
  • 开源平台廊坊百度快照优化
  • 安阳网站建设哪家好短信营销平台
  • 商丘网站建设推广哪家来电咨询百度竞价app
  • 深圳vi设计公司全力设计南京seo建站
  • 电子商务网站建设技能论文seo服务是什么意思
  • 网站前端交互功能案例分析关键字c语言
  • 做淘宝客网站哪个好广州网站制作实力乐云seo
  • 内部网站做域名解析到端口上海小红书seo
  • 如何建购物网站如何注册域名
  • 福建住房和城乡建设厅政府网站问答推广
  • 有没有学做家具的网站自媒体发稿
  • yy陪玩网站怎么做网络策划书范文
  • 装饰公司网站源码长沙推广公司
  • 湖北省建设人力资源网站首页岳阳seo快速排名
  • 织梦 网站版权信息南京高端品牌网站建设
  • 东莞网站排名优化价格网站开发技术有哪些
  • 浙江电商网站建设销售百度账号怎么改名字
  • 找公司的网站百度站长平台账号购买
  • 网站icp备案证书seo是什么级别
  • 品牌网站建设有什么作用win7优化大师官方免费下载
  • 做网站帮外国人淘宝网店怎么推广和宣传
  • 白名单查询网站百度浏览官网
  • 政府网站集约化建设经验搜索引擎营销的英文缩写是
  • 网站类别选择怎么创建自己的网站平台
  • 网站建设时间进度表模板沙洋县seo优化排名价格
  • 用哪个软件做网站广州百度推广优化