![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 89
峥嵘岁月1
这个作者很懒,什么都没留下…
展开
-
Redis-集群
一个Redis集群通常由多个节点组成,当节点node发送CLUSTER MEET ip Port进行握手(节点连接的方式),握手成功,则节点将ip和Port所指定的节点添加到当前所在的集群中。集群的数据结构:每个clusterNode结构保存着一个节点的当前状态,节点的创建时间、名字等。每个节点同时还会为集群中的其他节点创建一个相应的clusterNode来记录其他节点的状态。同时每个接待你还保存一个clusterState记录当前节点视角的集群所处状态。Cluster Meet 命令的实现原创 2021-06-22 23:40:06 · 114 阅读 · 0 评论 -
Redis-sentinel哨兵模式
Sentinel模式由一个或多个Sentinel实例组成,可以监视任意多个主服务器和主服务器属下的从服务器,并且在被监视的主服务器下线超过设定时长时,自动将其属下的从服务器升级成新的主服务器进行处理命令请求,在下线的主服务器重新上线时,只能成为从服务器。Sentinel启动和初始化的步骤初始化服务器Sentinel本质是一个运行在特殊模式在的Redis服务器,所以首先启动一个普通的Redis服务器,但Sentinel不实用数据库,所以不进行RDB文件和AOF文件的载入。将普通Redis服务器使用原创 2021-06-22 21:44:36 · 75 阅读 · 0 评论 -
Redis-复制
复制用户通过SLAVEOF host port或者slaveof选项,让一个服务器去复制另一个服务器,被复制的服务器即主服务器,对主服务器进行复制的为从服务器。数据库状态一致:复制中的主从服务器都保存相同的数据。旧版复制功能的实现(Redis2.8以前)复制功能分为同步和命令传播同步:同步用于将从服务器的数据库状态更新至主服务器所处的数据库状态。通过向主服务器发送*SYNC命令*来完成。同步的步骤:* 从服务器向主服务器发送SYNC命令。* 主服务器收到SYNC命令后执行BGSAVE原创 2021-06-22 20:19:10 · 93 阅读 · 0 评论 -
Redis-客户端和服务器
事件文件事件:Redis服务器通过套接字与客户端进行连接,文件事件就是服务器对套接字的抽象操作。文件事件处理器:使用I/O多路复用程序同时监听多个套接字,并根据套接字执行的任务关联不同的事件处理器。以单线程的方式运行,即实现了高性能的网络通信模型,也很好的与Redis服务器中其他单线程运行的模块进行对接,保持Redis内部单线程设计的简单性。文件事件处理器的构成:套接字、I/O多路复用程序、文件事件分派器、事件处理器。套接字负责准备好执行通信的操作。I/O多路复用程序负责监听多个套接字原创 2021-06-22 16:48:21 · 676 阅读 · 0 评论 -
Redis-持久化机制
RDB【问题】Redis是内存数据库,它首先将自己的数据库状态储存在内存里面,如果没有采取措施将数据库状态保存到磁盘中,一旦服务器进程退出,数据库状态也会消失导致数据丢失。RDB持久化能解决这个问题,RDB文件时一个经过压缩的二进制文件,保存在硬盘中,即使服务器故障,只要RDB文件存在就能用它进行数据库状态还原。RDB(保存的是dump.Rdb文件):在指定的时间间隔内将内存中的数据集【快照】写入磁盘,也就是恢复时将快照文件直接读到内存中(时间段内的内存中的块区数据写入磁盘)。RDB文件的创建原创 2021-06-21 23:54:16 · 70 阅读 · 0 评论 -
Redis-单机数据库
Redis服务器是一个键值对数据库服务器,将所有数据都保存在redisServer结构的db数组。每个redisServer代表了一个数据库,初始化时,程序根据redis.conf中配置的属性来决定创建多少个数据库,默认是16个。一些数据库的操作1. 切换数据库。 select 0 切换到0号数据库。2. 添加新键。例如插入一个键值对set k1 v1/LPUSH k2 1 2 33. 删除键。DEL K14. 更新键。set k1 v2,将k1原来的值v1改成v25. 对键取值。GET k原创 2021-06-21 21:06:54 · 90 阅读 · 0 评论 -
Redis-基本数据结构
简单动态字符串(SDS)SDS在Redis中的应用:* 键值对中,键和值得底层实现都是保存着字符串的SDS* AOF模块的AOF缓冲区、客户端状态的输入缓冲区SDS的结构这其中,len记录字符串中保存的长度,free记录剩余多少未使用的字节,buf表示字符串数组SDS的优点因为自身保存着字符串长度len,所以SDS在计算长度时,时间复杂度为O(1),这也保证了获取字符串长度不会成为Redis的瓶颈。缓冲区不会溢出。当需要对SDS字符串进行修改时,API会检查SDS的空间是否满足修改需原创 2021-06-21 17:04:48 · 74 阅读 · 0 评论