2021
09-13
09-13
比较几种Redis集群方案
目录一、概述二、Redis高可用集群搭建三、Redis集群节点间的通信机制3.1、集中式3.2、gossip四、网络抖动五、Redis集群选举原理分析5.1、集群是否完整才能对外提供服务5.2、Redis集群为什么至少需要三个master节点,并且推荐节点数为奇数?5.3、哨兵leader选举流程六、新增/删除节点一、概述在Redis3.0以前的集群一般是借助哨兵sentinel工具来监控主节点的状态,如果主节点异常,则会做主从切换,将某一台slave作为master。哨兵的...
继续阅读 >
目录一、前言二、为什么需要RedisCluster三、RedisCluster是什么四、节点负载均衡五、什么是一致性哈希六、虚拟节点机制七、RedisCluster采用的什么算法八、RedisCluster如何做到高可用8.1、集群如何进行扩容8.2、高可用及故障转移九、简单了解gossip协议十、gossip协议消息类型十一、使用gossip的优劣十二、总结一、前言Sentinel集群会对Redis的主从架构中的Redis实例进行监控,一旦发现了master节点宕机了,就会选举出一个Se...
目录一、引言二、固定时间窗口算法三、滑动时间窗口算法四、漏桶算法五、令牌桶算法一、引言在web开发中功能是基石,除了功能以外运维和防护就是重头菜了。因为在网站运行期间可能会因为突然的访问量导致业务异常、也有可能遭受别人恶意攻击所以我们的接口需要对流量进行限制。俗称的QPS也是对流量的一种描述针对限流现在大多应该是令牌桶算法,因为它能保证更多的吞吐量。除了令牌桶算法还有他的前身漏桶算法和简单的...
redis分布式锁RedissonLock简单使用Stringkey="key-lock";RLocklock=redisson.getLock(key);lock.lock();try{//TODO}catch(Exceptione){log.error(e.getMessage(),e);}finally{lock.unlock();}Stringkey="key-tryLock";longmaxWaitTime=3_000;RLocklock=redisson.getLock(key);if(lock.tryLock(maxWaitTime,TimeUnit.MILLISECONDS)){try{//TODO}catch(Exceptione){...
一、引入问题在工作中,遇到的接口基本都是长这样的:如下为一个库存扣减的接口。从redis中获取库存数量,然后扣减一个数量问题这个接口在并发的情况下是有问题,可以用jmeter测试一下(用postman压力测试了一下,没有测出并发问题。网上有的博客说postman没法测试并发)jmeter设置:100个并发打印结果:问题很严重呀解决方案,优化如下:jmeter设置:101个并发,stock=100,则正确结果是应该会出现一次“扣减失败,库存不足”打印...
目录引言固定时间窗口算法实现滑动时间窗口算法实现漏桶算法实现令牌桶算法引言在web开发中功能是基石,除了功能以外运维和防护就是重头菜了。因为在网站运行期间可能会因为突然的访问量导致业务异常、也有可能遭受别人恶意攻击所以我们的接口需要对流量进行限制。俗称的QPS也是对流量的一种描述针对限流现在大多应该是令牌桶算法,因为它能保证更多的吞吐量。除了令牌桶算法还有他的前身漏桶算法和简单的计数算法...
目录1、Sentinel哨兵2、Redis主从分离一、配置Master二、配置Slave1、在配置文件中配置从服务2、在服务启动后设置3、总结3、Sentinel哨兵1、配置端口2、配置主服务器的ip和端口3、启动Sentinel4、关闭Master5、重连Master4、Sentinel总结一、Sentinel的作用:二、Sentinel的工作方式:1、Sentinel哨兵Sentinel(哨兵)是Redis的高可用性解决方案:由一个或多个Sentinel实例组成的...