偷个懒,晚上工作忙的太晚,整个复制功能的内容还没有写完,这里先说一下复制功能的简单应用。

在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave)。

进行复制中的主从服务器双方的数据库将保存相同的数据,概念上我们将这种现象称为数据库状态一致或简称一致。

现在我们简单模拟主从同步:

1、拷贝一份redisServer的代码出来,修改redis.windows.conf文件的post端口

redisinsight 语言_redis


这里我们修改端口号为6380。

这里说明下,redis启动有两种方式:一种是以windows服务的方式运行,另一种是不以服务的方式运行(CMD启动),我们这里用一下不常用的服务的方式启动。

另外在windows安装完redis后发现在安装目录下存在两个配置文件,分别是

redis.windows-service.conf 和 redis.windows.conf ,前者是用于windows服务运行,后者不以windows服务运行。

然后执行以下命令:

redis-server.exe --service-install redis.windows.conf --service-name redis6380 --loglevel verbose 安装服务

redis-server.exe --service-start --service-name redis6380 启动服务

redis-server.exe --service-stop --service-name redis6380 停止服务

redis-server.exe --service-uninstall --service-name redis6380 卸载服务

此时端口号为6380的redisServer已经启动,

2、然后另一份代码我们默认执行redis-server.exe(偷懒)启动端口号为6379的server端。

3、接下来我们在6380端口的服务器上执行slaveof 127.0.0.1 6379,此时127.0.0.1 6380成为127.0.0.1 6379的从服务器。(PS:redis命令不区分大小写~)

redisinsight 语言_服务器_02


4、下面我们来校验主从是否同步:(1)我们在主服务器(127.0.0.1 6379)服务器上执行:set key value

redisinsight 语言_端口号_03


(2)现在我们将控台切换回(127.0.0.1 6380)

redisinsight 语言_服务器_04


到此一个简单的主从复制服务器就通了。

下一篇我们再看下主从复制的执行过程、SLAVEOF命令的实现、新旧同步方式的差异以及redis主从同步过程中的心跳检测。