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

做网站工作图网站 建设在作用

做网站工作图,网站 建设在作用,wordpress扫码枪,电商怎么做推广文章目录 概要例子1【SETNX EXPIRE】例子2【 Redisson 】 概要 redis分布式锁六种方案 SETNX EXPIRE 方案#xff1a; 描述#xff1a;使用Redis的SETNX命令来尝试设置一个键值对#xff0c;如果该键不存在#xff0c;则设置成功并设置过期时间#xff0c;实现锁的功能… 文章目录 概要例子1【SETNX EXPIRE】例子2【 Redisson 】 概要 redis分布式锁六种方案 SETNX EXPIRE 方案 描述使用Redis的SETNX命令来尝试设置一个键值对如果该键不存在则设置成功并设置过期时间实现锁的功能。 SETNX value值 方案 描述通过SETNX命令尝试设置键值对并将值设置为当前系统时间加上锁的过期时间锁的释放可以通过比较值来判断是否过期。 Lua脚本 方案 描述使用Lua脚本结合SETNX和EXPIRE两条指令通过保证原子性来实现分布式锁。 SET的扩展命令SET EX PX NX方案 描述利用Redis的SET命令的扩展参数结合EX、PX和NX参数可以一步完成锁的设置。 开源框架 Redisson 方案 描述Redisson是一个基于Redis的Java框架提供了分布式锁等多种分布式功能的实现简化了开发者的工作。 多机实现的分布式锁 Redlock 方案 描述Redlock通过在多个Redis节点上获取锁并使用时钟同步算法确保锁的可靠性和一致性。 例子1【SETNX EXPIRE】 public class Test {private static final String LOCK_KEY my_lock;public static void main(String[] args) {// 连接到Redis服务器Jedis jedis new Jedis(122.51.159.21, 6379);// 获取锁if (acquireLock(jedis, LOCK_KEY)) {try {// 执行需要加锁的业务逻辑System.out.println(锁已获取。正在执行关键部分...);// 模拟业务处理时间Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();} finally {// 保证释放锁releaseLock(jedis, LOCK_KEY);}} else {System.out.println(无法获取锁。另一个进程持有该锁。);}// 关闭连接jedis.close();}private static boolean acquireLock(Jedis jedis, String lockKey) {// 尝试设置锁如果成功返回1否则返回0Long result jedis.setnx(lockKey, locked);if (result 1) {// 设置锁的过期时间jedis.expire(lockKey, 30);// 过期时间 30sreturn true;}return false;}private static void releaseLock(Jedis jedis, String lockKey) {// 释放锁jedis.del(lockKey);} } 此方案缺点 在高并发情况下多个客户端可能同时执行 SETNX 命令并都成功获取锁导致竞争条件发生加锁与与设置过期时间是非原子操作如果业务逻辑执行时间超过了过期时间锁可能会在业务逻辑执行完之前被自动释放 例子2【 Redisson 】 public class Test {public static void main(String[] args) {// 创建 Redisson 客户端连接Config config new Config();config.useSingleServer().setAddress(redis://122.51.159.21:6379);RedissonClient redisson Redisson.create(config);// 获取分布式锁RLock lock redisson.getLock(my_lock);try {// 尝试加锁最多等待 10 秒锁的持有时间为 20 秒boolean isLocked lock.tryLock(10, 20, java.util.concurrent.TimeUnit.SECONDS);if (isLocked) {// 成功获取到锁System.out.println(成功获取到锁执行业务逻辑...);// 在这里执行你的业务逻辑} else {// 获取锁失败System.out.println(获取锁超时未能执行业务逻辑...);}} catch (InterruptedException e) {Thread.currentThread().interrupt();} finally {// 释放锁lock.unlock();}// 关闭 Redisson 客户端连接redisson.shutdown();} } Redisson解决了锁过期释放业务没执行完。 Redisson中watch dog看门狗可以去了解下。 ❤觉得有用的可以留个关注❤
http://www.yingshimen.cn/news/33229/

相关文章:

  • 想学网站开发如何登录到wordpress
  • intitle 做网站石家庄市最新公告
  • 网站错误代码301酷炫个人特别网站
  • 大连专业网站设计服务商网站建设搭建专业网站平台公司
  • 3d做号网站瑞安网站网站建设
  • 企业网站建设代理加盟启信宝
  • 外国网页设计网站怎么把网站做的好看
  • 温州做网站整站优化网站怎么做伪静态iis7.0
  • 长沙网站建设的公司wordpress 亲子模板
  • 网站建设返回函数一鸣东莞网站建设公司
  • wordpress 获取网站优化目录
  • 做购物网站的图标从哪里来seo软文推广工具
  • 淮安网站开发工程师招聘网铝单板设计师招聘网
  • 网站优化是做什么的高青外贸公司网站建设
  • wordpress插件图库东莞网站的优化
  • 单页面营销网站中信建设公司领导班子
  • 安平有做农产品的网站被淘宝客 wordpress 主题
  • 怎么在百度自己创网站网络培训法
  • 关于做情侣的网站的图片素材交易网站建设具体方案
  • 云霄建设局网站中国最有创意的广告
  • 手机版刷赞网站建设网站备案号被注销怎么办
  • 工信部网站备案查询步骤详解网络平台推广有哪些渠道
  • 苏州正规网站制作公司软件开发文档工具
  • 采集站seo课程页面模板怎么放到自定义菜单
  • 招远网站建设价格房产网加盟
  • 设计网站公司医疗网站建设机构
  • 站长之家官网龙岗南联网站建设公司
  • wordpress 4.0 多站点构建中小型企业网络
  • 商业网站定义网站建设文献综述模板
  • 合肥高端网站建设设计公司哪家好dedecms能做什么网站