杨 发布的文章

sds定义

sds.h/sdshdr 结构定义了sds的结构:

struct sdshdr {
//记录buf数组使用字节数量,即字符串长度
int len;

//记录buf数组未使用字节数量
int free;

//字节数组,保存字符串
char buf[];

len: 字符串长度

- 阅读剩余部分 -

哨兵系统会监控主从服务器,当检测到下线时长超过用户设定时长上限时,会进行故障转移操作:

  • 选择一个从服务器作为主服务器
  • 然后对其他所有从服务器发送新的复制指令,让它们成为新的主服务器的从服务器,当所有从服务器都开始复制新的主服务器时,故障转移操作完毕
  • 另外,哨兵还会继续监视已下线的服务器,并在它重新上线时,将它设置为新的主服务器的从服务器。

- 阅读剩余部分 -

2.8版本前后复制原理有所不同,2.8之前称为旧版,2.8后称为新版。

旧版复制实现原理

redis的复制操作分为同步(sync)和命令传播(command propagate) 两个操作:

  • 同步操作用于将从服务器状态更新为主服务器当前所处的服务器状态
  • 命令传播操作则用于当主服务器状态被修改,导致主从状态不一致时,让主从状态恢复到一致状态。

- 阅读剩余部分 -

新加4个标量类型声明

php7之前已经存在的函数参数类型有:class,self,array,callable
php7之后新加入的有:bool,float,int,string,object


- 阅读剩余部分 -