主从复制,读写分离!减缓服务器压力!最少1主2丛。
主从复制主要作用:
1,数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式
2,故障恢复:当主节点故障时,可由从节点提供服务,实现快速的故障恢复。实际上是一种服务的冗余
3,负载均衡
4,高可用基石:主从复制是哨兵模式和集群能够实施的基础。因此说主从复制是redis高可用的基础。
info replication #查看当前服务的信息
实际操作:
先cp三个配置文件
[root@localhost bin]# cp redis.conf redis6380.conf
[root@localhost bin]# cp redis.conf redis6381.conf
[root@localhost bin]# cp redis.conf redis6382.conf
修改配置文件
daemonize
pidfile
port
logfile
dbfilename
redis-sever
启动三个服务
[root@localhost bin]# redis-server redis6380.conf
[root@localhost bin]# redis-server redis6381.conf
[root@localhost bin]# redis-server redis6382.conf
[root@localhost bin]# ps -ef |grep redis
root 95575 1 0 17:53 ? 00:00:00 redis-server 127.0.0.1:6380
root 95594 1 0 17:53 ? 00:00:00 redis-server 127.0.0.1:6381
root 95602 1 0 17:53 ? 00:00:00 redis-server 127.0.0.1:6382
root 95618 84705 0 17:54 pts/0 00:00:00 grep --color=auto redis
[root@localhost bin]#
一主二从配置
默认情况下每台redis服务都是主节点
一般情况下我们只要配置从机就行了(认老大)
[root@localhost bin]# redis-cli -p 6381
127.0.0.1:6381> ping
PONG
127.0.0.1:6381> SLAVEOF 127.0.0.1 6380
OK
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:28
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:8905f5ccb83767c33a157a02967445e93e15abc1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:28
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:28
127.0.0.1:6381>
[root@localhost bin]# redis-cli -p 6382
127.0.0.1:6382> ping
PONG
127.0.0.1:6382> SLAVEOF 127.0.0.1 6380
OK
127.0.0.1:6382>
真实的主从配置应该在配置文件中配置,在配置文件中配置才是永久的。上面这种方法是通过命令配置的。
# replicaof <masterip> <masterport> #配置主机的ip 和 端口
# If the master is password protected (using the "requirepass" configuration
# directive below) it is possible to tell the replica to authenticate before
# starting the replication synchronization process, otherwise the master will
# refuse the replica request.
#
# masterauth <master-password> #密码
全量复制,增量复制