redis单机环境下开启多个实例,并形成主从同步。redis默认端口是6379,这里我们创建了三个实例,分别使用了6380,6381,6382三个端口,6380端口实例作为主节点,6381和6382作为从节点。
1.下载好windows版本的redis,进行解压。这里并没有安装为windows的服务,通过指令操作。
//cmd进入到redis的目录,执行指令开启实例
redis-server.exe
//开启客户端
redis-cli.exe
这里是启动默认6379端口的实例,可以进行set、get操作测试。
2.复制redis.windows-service.conf文件,并改名成对应的端口redis-6380.conf,redis-6381.conf,redis-6382.conf
配置文件需要更改的地方:
- 对应的端口进行更改
# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 6381
- 生成的log文件命名更改
# Specify the log file name. Also 'stdout' can be used to force
# Redis to log on the standard output.
logfile "server_log6381.txt"
- 从库配置,主节点为6380端口的实例
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6380
3.分别启动三个节点
//启动6380实例
E:\redis>redis-server.exe redis-6380.conf
//启动6381实例
E:\redis>redis-server.exe redis-6381.conf
//启动6382实例
E:\redis>redis-server.exe redis-6382.conf
//客户端连接
E:\redis>redis-cli.exe -p 6380 "info"
6380作为master节点,有两个slave节点,分别是6381,6382端口实例
6381端口slave节点信息
以上三个步骤,已经完成了主从节点的配置。下面测试主从节点。
在master节点添加了一个key为a,值为a
进入到slave节点,获取这个key
在slave节点成功获取a对应的值,想要进一步测试slave节点的set功能,发现slave节点并没有写入功能。我们并没有修改配置文件的其他部分,默认情况下,slave节点是只读的,可以从slave节点的info信息中可以看出。 slave_read_only:1,表示slave是只读的。