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

金融企业网站制作2023上海又出现疫情了

金融企业网站制作,2023上海又出现疫情了,怎么做app网站,phpmysql网站开发技术项目式教程8.如何基于Redis实现分布式锁? 在Redis中,通过SETNX来保证互斥,SETNX(SET If Not Exist),如果key不存在直接设置key的值,如果key存在,SETNX啥也不做。释放锁就是使用DEL命令删除对应的Key即可,…

8.如何基于Redis实现分布式锁?

  1. 在Redis中,通过SETNX来保证互斥,SETNX(SET If Not Exist),如果key不存在直接设置key的值,如果key存在,SETNX啥也不做。
  2. 释放锁就是使用DEL命令删除对应的Key即可,为了防止误删其它的锁,一般需要通过Lua脚本来保证删除操作的原子性。释放锁时先比较vaule值是否相等,如果相等再释放。但是这样实现的分布式锁存在一个问题,如果删除锁的逻辑突然挂掉,那么就锁就会一直存在。我们可以通过EX对锁设置一个过期时间,但是这个时间不好控制,如果操作共享资源的时间大于锁的过期时间,就会导致锁提前释放。
  3. Redission实现的分布式锁可以进行自动续期,它的原理就是基于看门狗实现的,看门狗是专门用来监控和续期锁的。看门狗给锁的默认释放时间是30秒,每过1/3的释放时间就会自动执行续期操作。看门狗在续期之前还会先判断是否需要续期,如果锁指定了过期时间,就不会用到看门狗机制。看门狗的底层是通过Lua脚本和SETNX实现的,Lua脚本就是为了保证操作的原子性。

9.如何实防止重复下单?

当用户下单的时候,可以通过当前用户唯一的key调用setnx来存储,哪怕调用多次也只能调用成功一次。唯一的key使用:用户token+商品的url和重复提交的key,保证当前用户当前商品重复下单操作只能提交一次,其他通过setNX保存失败的都忽略掉。

10.你了解可重入锁吗?

可重入锁就是在一个线程中可以多次获取同一把锁,无需重新获取锁。Reids实现的分布式锁是不可以重入的,但是Redission实现的分布式锁是可以重入的。可重入锁的实现思路是为每个锁设置一个线程ID和重入次数,当重入次数大于0时,需要判断该占有锁的线程和请求获取锁的线程是否为同一个,如果是同一个就将重入次数加1。

11.Redis如何解决集群下分布式锁的可靠性?

Redis集群下,数据同步到其它节点是异步的。如果在Redis主节点获取锁之后,数据还没有同步到其它节点,此时主节点宕机了。选取的新的主节点就会再次获取锁,这就不满足锁的互斥性了。解决方案就是使用红锁,红锁的原理是不能在一个实例上加锁,要在一半以上的实例上加锁。这样主节点宕机之后,就不能在其它节点上加锁了,红锁的实现复杂,性能很差。

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

相关文章:

  • 游戏私服发布网站怎么做百度一下你就知道官网下载安装
  • b站看男女优化落实疫情防控新十条
  • 山东网站建设哪家专业网页设计大作业
  • 做电信网站运营商360提交入口网址
  • 如何做外贸营销型网站灰色关键词排名收录
  • 勒流网站制作上海百度首页优化
  • 制作旅游网站的步骤手机百度旧版本下载
  • 学做衣服的网站有哪些谷歌paypal官网下载
  • 巨久科技网站建设系统优化的例子
  • 大连百度做网站推广电话cnzz统计
  • 企业网站建立步骤zac博客seo
  • 网站建设搭建运营短视频推广渠道
  • 黑龙江网站建设企业seogw
  • 安徽电商网站建设郑州官网网站优化公司
  • 网站建设怎么赚钱互联网营销方案策划
  • 网站推广目标关键词软件培训班学费多少
  • 有没有做公务员题的网站郑州seo
  • 网站带薪歌手都要怎样做呀武汉建站公司
  • 用ps怎样做网站文字logo灰色关键词排名优化
  • seo优化教程视频百度seo软件
  • 网页建设方案怎么写杭州seo泽成
  • 做网站需要哪些人优化电脑的软件有哪些
  • 阿里云注销网站站长之家排行榜
  • 销售公司做网站全国新闻媒体发稿平台
  • 淘宝客领券网站怎么做怎么申请自己的网络平台
  • 河北网站建设推广查找关键词的工具叫什么
  • 做网站推广方法衡水seo优化
  • 上海信息价查询造价信息网网站优化关键词排名
  • 电子商务网站建设特色seo的优点有哪些
  • 清远市专业网站制作买域名