Redis
文章平均质量分 85
m0_51167384
一个有梦想且努力的程序员
展开
-
redis cluster集群模式简述
前言redis最开始使用主从模式做集群,若master宕机需要手动配置slave转为master;后来为了高可用提出来哨兵模式,该模式下有一个哨兵监视master和slave,若master宕机可自动将slave转为master,但它也有一个问题,就是不能动态扩充;所以在3.x提出cluster集群模式。这种集群模式属于多主多从。一、集群模式的概念Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation)。Redis 集群不支持那些需要同时处理多个键的 R原创 2021-04-04 17:35:27 · 334 阅读 · 0 评论 -
Redis分布式锁和Redlock实现方式
前言随着互联网的兴起,现代软件发生了翻天覆地的变化,以前单机的程序,已经支撑不了现代的业务。无论是在抗压,还是在高可用等方面都需要多台计算机协同工作来解决问题。现代的互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题。当某个资源在多系统之间共享的时候,为了保证大家访问这个资源数据是一致的,那么就必须要求在同一时刻只能被一个客户端处理,不能并发的执行,否者就会出现同一时刻有人写有人读,大家访问到的数据就不一致了(比如:当宝贝库存接原创 2021-03-29 18:22:05 · 529 阅读 · 0 评论 -
Redis的主从复制和 哨兵模式
前言持久化解决了单机redis的数据保存问题,但是redis还是存在以下两个问题:(1)假如某天这台redis服务器挂了,redis服务将彻底丧失(2)redis的读和写都集中到一台机上,如果请求量比较大时,将可能被击溃解决为了解决上述两个问题,redis提供了主从架构,在主从架构中,主服务器负责写服务,多台从服务器负责读服务,缓解了单个redis服务器的压力;主服务器将所有数据源源不断的同步到从服务器上,一旦主服务器挂了,还有从服务器可以提供服务,redis服务将不会间断。一、主从复制1.概原创 2021-03-29 17:10:07 · 141 阅读 · 0 评论 -
Redis的线程模型
前言Redis 快的原因其中有一个是因为使用了合适的线程模型:多路复用单线程一、IO多路复用多路复用是指:I/O :网络 I/O多路:多个 TCP 连接复用:共用一个线程或进程生产环境中的使用,通常是多个客户端连接 Redis,然后各自发送命令至 Redis 服务器,最后服务端处理这些请求返回结果;如图:应对大量的请求,Redis 中使用 I/O 多路复用程序同时监听多个套接字,并将这些事件推送到一个队列里,然后逐个被执行。最终将结果返回给客户端。二、单线程模型1.Redis 中使原创 2021-03-28 23:40:29 · 89 阅读 · 0 评论 -
Redis高效的数据结构及特殊性
前言一、简单动态字符串1.字符串长度处理字符串在 C 语言中的存储方式,想要获取 字符串的长度,需要从头开始遍历,直到遇到 ‘\0’ 为止redis中用一个 len 字段记录当前字符串的长度。想要获取长度只需要获取 len 字段即可。你看,差距不言自明。前者遍历的时间复杂度为 O(n),Redis 中 O(1) 就能拿到,速度明显提升。如图所示:2.内存重新分配空间预分配对 SDS 修改及空间扩充时,除了分配所必须的空间外,还会额外分配未使用的空间。具体分配规则是这样的:SDS 修改后原创 2021-03-28 13:12:22 · 196 阅读 · 1 评论 -
Redis的过期键删除策略和内存淘汰机制
一、过期键的判定通过过期字典,程序可以用以下步骤检查一个给定键的过期时间:(1)检查给定键是否存在于过期字典;如果存在就取出来过期时间;(2)检查当前的UNIX时间戳是否大于键的过期时间,如果是的话,那么键过期,否则键未过期。伪代码过程:二、过期键删除策略1.定时删除(主动删除)需要让服务器创建大量定时器,从而达到定时删除,不现实。一般不用概念:在设计过期时间的时候,创建一个定时器,让定时器在键过期时间来临的时候,执行删除操作。优点:对内存友好,保证内存被尽快释放。缺点:1)若过期k原创 2021-03-27 15:00:46 · 286 阅读 · 4 评论