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

seo网站关键词优化价格网站关键词和描述

seo网站关键词优化价格,网站关键词和描述,wordpress 速度变慢,软件开发哪个培训机构好一、概述 分布式锁#xff0c;即分布式系统中的锁。在单体应用中我们通过锁解决的是控制共享资源访问的问题#xff0c;而分布式锁#xff0c;就是解决了分布式系统中控制共享资源访问的问题。与单体应用不同的是#xff0c;分布式系统中竞争共享资源的最小粒度从线程升级…一、概述 分布式锁即分布式系统中的锁。在单体应用中我们通过锁解决的是控制共享资源访问的问题而分布式锁就是解决了分布式系统中控制共享资源访问的问题。与单体应用不同的是分布式系统中竞争共享资源的最小粒度从线程升级成了进程。 基于 Redis 单机实现的分布式锁其方式和 Memcached 的实现方式类似利用 Redis 的 SETNX 命令此命令同样是原子性操作只有在 key 不存在的情况下才能 set 成功。而基于 Redis 多机实现的分布式锁Redlock是Redis 的作者 antirez 为了规范 Redis 分布式锁的实现提出的一个更安全有效的实现机制。 二、基于 Redis 单机实现的分布式锁 1、 使用 SETNX 指令 使用 Redis 的 SETNX 指令该指令只在 key 不存在的情况下将 key 的值设置为 value若 key 已经存在则 SETNX 命令不做任何动作。key 是锁的唯一标识可以按照业务需要锁定的资源来命名。 2、SETNX value值是(系统时间过期时间) setnx(lockkey, 当前时间过期超时时间) 如果返回1则获取锁成功如果返回0则没有获取到锁 long expires System.currentTimeMillis() expireTime; //系统时间设置的过期时间 String expiresStr String.valueOf(expires); // 如果当前锁不存在返回加锁成功 if (jedis.setnx(key_resource_id, expiresStr) 1) {return true; } // 如果锁已经存在获取锁的过期时间 String currentValueStr jedis.get(key_resource_id); // 如果获取到的过期时间小于系统当前时间表示已经过期 if (currentValueStr ! null Long.parseLong(currentValueStr) System.currentTimeMillis()) {// 锁已过期获取上一个锁的过期时间并设置现在锁的过期时间不了解redis的getSet命令的小伙伴可以去官网看下哈String oldValueStr jedis.getSet(key_resource_id, expiresStr); if (oldValueStr ! null oldValueStr.equals(currentValueStr)) {// 考虑多线程并发的情况只有一个线程的设置值和当前值相同它才可以加锁return true;} } //其他情况均返回加锁失败 return false; } 3、Redis分布式锁方案三使用Lua脚本(包含SETNX EXPIRE两条指令) lua脚本如下 if redis.call(setnx,KEYS[1],ARGV[1]) 1 thenredis.call(expire,KEYS[1],ARGV[2]) elsereturn 0 end; 加锁代码如下 String lua_scripts if redis.call(setnx,KEYS[1],ARGV[1]) 1 then redis.call(expire,KEYS[1],ARGV[2]) return 1 else return 0 end; Object result jedis.eval(lua_scripts, Collections.singletonList(key_resource_id), Collections.singletonList(values)); //判断是否成功 return result.equals(1L); 三、基于Redisson框架 其实 Redisson 也封装 可重入锁Reentrant Lock、公平锁Fair Lock、联锁MultiLock、红锁RedLock、读写锁ReadWriteLock、 信号量Semaphore、可过期性信号量PermitExpirableSemaphore、 闭锁CountDownLatch等。具体参考Redisson详解及开发实例 大体流程如下 watch dog自动延期机制 看门狗启动后对整体性能也会有一定影响默认情况下看门狗线程是不启动的。如果使用redisson进行加锁的同时设置了锁的过期时间也会导致看门狗机制失效 1、引入依赖 dependencygroupIdorg.redisson/groupIdartifactIdredisson/artifactIdversion3.19.2/version /dependency 2、配置类实现 Bean public RedissonClient redissonClient(){ Config config new Config(); config.setTransportMode(TransportMode.EPOLL); // 默认是NIO的方式 config.useClusterServers()//可以用rediss://来启用SSL连接前缀必须是redis:// or rediss://.addNodeAddress(redis://127.0.0.1:7181); return Redisson.create(config); } 3、工具类 import org.redisson.api.RLock; import org.redisson.api.RReadWriteLock; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.UUID;/*** Redisson 加锁*/ Component public class RedissonUtil {Resourceprivate RedissonClient redissonClient;public String getKey(){return UUID.randomUUID().toString();}public String getKey(Class? tClass, Thread thread){return tClass.toString() _ thread.getStackTrace()[2].getMethodName();}public RLock getClint(String key){RReadWriteLock lock redissonClient.getReadWriteLock(key);return lock.writeLock();}public void lock(String key) {this.getClint(key).lock();}public void unLock(String key) {this.getClint(key).unlock();}public void lock(String key, long expire) {try {this.getClint(key).tryLock(expire, TimeUnit.SECONDS);} catch (Exception e) {}}} 4、测试代码 AutowiredRedissonUtil redissonUtil;String key leo;long extime 10;boolean islock redissonUtil.lock(key, extime);if (islock) {try {} finally {redissonUtil.unLock(key);}}
http://www.pierceye.com/news/806952/

相关文章:

  • 浙江省的网站建设公司有哪些代理注册公司一般多少钱
  • 如何在建设银行网站预约纪念币东莞网站建设服务有什
  • 有哪些可以做h5的网站代理网址上境外网
  • 做网站所需要的代码6红杏直播
  • 南通制作网站wordpress移动版设置
  • 哪个网站有免费ppt下载建筑类网站的推荐理由
  • 视觉差的网站公司外包
  • 基础做网站内蒙住房和城乡建设部网站
  • 发帖效果好的网站展馆展示设计公司排名
  • 童装网站建设文案什么网站做的号
  • 能打开的a站莆田网站建设建站系统
  • 上海市城乡建设管理局网站一个月做网站
  • 网站后台管理系统 aspwordpress拖拽上传
  • 华为手机官方网站登录爬虫做视频网站
  • 山东省工程建设信息官方网站河南网站seo推广
  • 低成本做网站 白之家重庆市建设执业资格注册管理中心网站
  • 电子商务网站建设需求在别的公司做的网站可以转走吗
  • 网站流量怎么做乡1万做网站需要几个人
  • 阿里云centos7做网站怀化网站seo
  • 我做的网站怎样被百度收录易语言 做网站mysql
  • 花店网站模板免费下载9个做简历的网站
  • 东港区网站制作seo推广模式是什么
  • 用织梦做网站能练技术吗广州专业网络推广公司
  • 下载ppt模板免费的网站在线做头像网站
  • 网络推广怎么免费做网站内部优化的方法
  • 沧州wap网站制作哈尔滨建设网证件查询
  • 一键查询注册过的网站快速排名教程
  • 响应式模板网站泰安招聘信息最新招聘2021
  • 信阳市住房和城乡建设厅网站wordpress加载速度
  • 建设本地网站 配置iis百度h5在线制作免费