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

php的网站怎么做的项目推广

php的网站怎么做的,项目推广,人力资源和社会保障部办公厅,上海电子商务网站建设接上文 Redis与分布式-集群搭建 1.分布式锁 为了解决上述问题,可以利用分布式锁来实现。 重新复制一份redis,配置文件都是刚下载时候的不用更改,然后启动redis服务和redis客户。 redis存在这样的命令:和set命令差不多&#xff0…
接上文 Redis与分布式-集群搭建

1.分布式锁

在这里插入图片描述
在这里插入图片描述
为了解决上述问题,可以利用分布式锁来实现。
重新复制一份redis,配置文件都是刚下载时候的不用更改,然后启动redis服务和redis客户。
在这里插入图片描述
redis存在这样的命令:和set命令差不多,但是它有一个机制,当指定的key不存在的时候,才能进行插入,实际上就是 set if not exists的缩写,当key被删除后可以进行插入。

setnx key value

在这里插入图片描述

利用这种特性,可以再不同的服务中实现分布式锁。但是若某个服务加了锁并且卡顿了,或者崩溃,那么这把锁永远无法释放了,因此可以加过期时间:set a666 EX 5 NX

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果学习过JUC并发编程,会发现若在超时之前那一刻进入到释放锁的阶段,获取到的值肯定还是自己,但是在即将执行删除之前,由于超时机制导致被删除并且其他任务也加锁了,那么这时候在删除,仍会导致删除其他任务加的锁
在这里插入图片描述
导入Redisson依赖

<dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.17.0</version>
</dependency><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.75.Final</version>
</dependency>

在这里插入图片描述
不加锁的情况

    public static void main(String[] args) {for (int i = 0; i < 10; i++) {new Thread(() -> {try(Jedis jedis = new Jedis("192.168.0.10", 6379)){for (int j = 0; j < 100; j++) {   //每个客户端获取a然后增加a的值再写回去,如果不加锁那么肯定会出问题int a = Integer.parseInt(jedis.get("a")) + 1;jedis.set("a", a+"");}}}).start();}}

在redis中设置a=0,然后测试不加锁
在这里插入图片描述
在这里插入图片描述
取出a,得出结果不对
在这里插入图片描述
测试加锁

public static void main(String[] args) {Config config = new Config();config.useSingleServer().setAddress("redis://192.168.0.10:6379");   //配置连接的Redis服务器,也可以指定集群RedissonClient client =  Redisson.create(config);   //创建RedissonClient客户端for (int i = 0; i < 10; i++) {new Thread(() -> {try(Jedis jedis = new Jedis("192.168.0.10", 6379)){RLock lock = client.getLock("testLock");    //指定锁的名称,拿到锁对象for (int j = 0; j < 100; j++) {lock.lock();    //加锁int a = Integer.parseInt(jedis.get("a")) + 1;jedis.set("a", a+"");lock.unlock();   //解锁}}System.out.println("结束!");}).start();}
}

执行完a的值加了1000,此时写入为正常
在这里插入图片描述

此时若用于存放锁的redis服务挂了,那么肯定会出问题的,这个时候可以用RedLock,它的思路是在多个redis服务器上保持锁,只需要超过半数的redis服务获取到锁,那么就真的获取到锁了,这样挂掉一部分节点,也能保证正常运行。

http://www.qdjiajiao.com/news/2416.html

相关文章:

  • 都有哪些网站可以做推广百度seo营销
  • win2012r2 建设网站电脑系统优化软件排行榜
  • o2o网站平台怎么做百度竞价登录入口
  • 电子请柬网站开发友情链接怎么互换
  • 手机网站方案.doc自己建网站怎么建
  • 天津几个区分别是谷歌seo详细教学
  • 萨龙wordpress企业站seo外包
  • 网站建设公司 盐城市搜索引擎优化简称
  • 网站空间源码天门seo
  • 神华两学一做网站东莞seo建站优化哪里好
  • 企业网站平台如何做网络推广产品推广广告
  • wordpress优惠码插件安徽网站seo公司
  • 广州推广网站免费代码网站
  • 什么浏览器可以看违规网站建立网站需要什么条件
  • 免费加盟一件代发货源网站深圳网络营销平台
  • 建网站设竞价交易
  • 网站广告文案西安疫情最新消息1小时内
  • 怎么给网站做后台品牌搜索引擎服务优化
  • 网站必须要实名认证么友情链接英文
  • 平台网站功能四川网站制作
  • 网站加速cdn百度指数总结
  • wordpress纯净版下载地址湖南靠谱的关键词优化
  • 如何使用模板做网站自动化测试培训机构哪个好
  • 电商网站开发技术方向百度权重是什么
  • 在服务器上布网站怎么做的百度竞价排名收费标准
  • 网站建设是无形资产东莞网站到首页排名
  • 旅行社网站建设方案百度云搜索引擎入口官方
  • 一条龙网站建设哪家好杭州百度人工优化
  • 拍卖网站开发辽宁和生活app下载安装
  • wordpress首页添加图片不显示网站优化效果