1、创建一个 /rediscluster目录
[root@master ~]# mkdir /rediscluster
2、将/etc/redis.conf文件复制到 /rediscluster目录下,
注:因为主从需要三个配置文件,分别给文件改名为redis-6379.conf、redis-6380.conf、redis-6381.conf
cp /etc/redis.conf /rediscluster/redis.conf
[root@master ~]# ll /rediscluster/
-rw-r--r--. 1 root root 106573 Jun 8 06:22 redis-6379.conf
-rw-r--r--. 1 root root 106708 Jun 8 06:05 redis-6380.conf
-rw-r--r--. 1 root root 106733 Jun 8 06:05 redis-6381.conf
3、分别修改文件中的配置
对redis-6379.conf配置文件的修改
daemonize yes --- 开启后台运行服务
protected-mode no --- 关闭保护模式,否则可能会拒绝客户端的连接
port 6379 --- 修改端口号
pidfile /var/run/redis_6379.pid --- 修改Pid文件名
dbfilename dump_6379.rdb --- 修改持久化文件名
dir "/rediscluster"
对redis-6380.conf配置文件的修改
daemonize yes --- 开启后台运行服务
protected-mode no --- 关闭保护模式,否则可能会拒绝客户端的连接
port 6380 --- 修改端口号
pidfile /var/run/redis_6380.pid --- 修改Pid文件名
dbfilename dump_6380.rdb --- 修改持久化文件名
dir "/rediscluster"
对redis-6381.conf配置文件的修改
daemonize yes --- 开启后台运行服务
protected-mode no --- 关闭保护模式,否则可能会拒绝客户端的连接
port 6381 --- 修改端口号
pidfile /var/run/redis_6381.pid --- 修改Pid文件名
dbfilename dump_6381.rdb --- 修改持久化文件名
dir "/rediscluster"
4、启动redis服务(配置文件的路径,建议写绝对路径),并查看
redis-server redis-6379.conf
redis-server redis-6380.conf
redis-server redis-6381.conf
[root@master ~]# ps -ef | grep redis --- 查看redis的进程
root 34766 1 0 06:00 ? 00:00:03 redis-server *:6380
root 34783 1 0 06:01 ? 00:00:04 redis-server *:6381
root 34892 1 0 06:22 ? 00:00:03 redis-server *:6379
5、三个窗口分别起不同端口的redis服务
[root@master ~]# redis-cli -p 6379
127.0.0.1:6379>
[root@master ~]# redis-cli -p 6380
127.0.0.1:6380>
[root@master ~]# redis-cli -p 6381
127.0.0.1:6381>
6、查看此时redis服务的角色
此时,三台主机的角色都为主
[root@master ~]# redis-cli -p 6379
127.0.0.1:6379> info replication
# Replication
role:master ----- 角色信息
connected_slaves:0
master_failover_state:no-failover
master_replid:7e3a56815621f4fd63ca60e771ddf9dc6ab360d5
master_replid2:6f4ae708461891737f9358c1924e5fe222d9e993
master_repl_offset:1874
second_repl_offset:1875
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1875
repl_backlog_histlen:0
7、若我们希望6379为主,我们需要在其他两台上面运行slaveof 127.0.0.1 6379此命令,此时查看6380和6381的状态就是从
[root@master ~]# redis-cli -p 6380
127.0.0.1:6380> slaveof 127.0.0.1 6379
OK
127.0.0.1:6380> info replication
# Replication
role:slave ----- 角色信息已改变
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_read_repl_offset:1888
slave_repl_offset:1888
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:7e3a56815621f4fd63ca60e771ddf9dc6ab360d5
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1888
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1875
repl_backlog_histlen:14
8、验证主从
#在主机上定义
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
#在从机上面进行查看
127.0.0.1:6380> get k1
"v1"
127.0.0.1:6380>
127.0.0.1:6381> get k2
"v2"