redis主從復制-讀寫分離
由于沒有多臺服務器,又懶得創(chuàng)建多個虛擬機 此處使用多進程進行模擬
一、創(chuàng)建三個目錄用來存放數(shù)據(jù)文件、日志文件、配置文件
mkdir -p /opt/redis/data mkdir -p /opt/redis/log mkdir -p /opt/redis/conf
二、復制redis.conf文件到/opt/redis/conf目錄下 為 redis-public.conf 作為公共配置文件
三、修改redis-public.conf 文件
# bind 127.0.0.1 注釋
protected-mode no 關(guān)閉保護模式
# port 6379 注釋掉port 此步驟如果放在多臺服務器可以不做修改 因為即使port相同但是ip不同
daemonize yes 修改為后臺啟動
# pidfile /var/run/redis_6379.pid 注釋進程編號記錄文件 此步驟如果放在多臺服務器可以不做修改
# logfile "" 注釋日志文件 此步驟如果放在多臺服務器可以不做修改 或者指定路徑存放
# dbfilename dump.rdb 注釋公共配置數(shù)據(jù)文件
dir /opt/redis/data 修改數(shù)據(jù)文件路徑
masterauth 123456 添加從服務器訪問主服務器認證
requirepass 123456 設置密碼
appendonly no 設置成no
# appendfilename "appendonly.aof" 注釋公共配置追加文件
replica-read-only yes 從服務器默認只讀不允許寫 不需要修改 需注意 之前的版本里好像是 slave-read-only
四、創(chuàng)建三個配置文件
touch redis-6379.conf touch redis-6380.conf touch redis-6381.conf
五、填寫三個配置文件
主服務器
# 引用公共配置 include /opt/redis/conf/redis-public.conf # 進程編號記錄文件 pidfile /var/run/redis-6379.pid # 進程端口號 port 6379 # 日志記錄文件 logfile "/opt/redis/log/redis-6379.log" # 數(shù)據(jù)記錄文件 dbfilename dump-6379.rdb # 追加文件名稱 appendfilename "appendonly-6379.aof" # 下面的配置無需在主服務器上配置 # 備份服務器從屬于主服務器 推薦配置局域網(wǎng)ip # slaveof 222.111.213.55 6379
slave1 服務器
# 引用公共配置 include /opt/redis/conf/redis-public.conf # 進程編號記錄文件 pidfile /var/run/redis-6380.pid # 進程端口號 port 6380 # 日志記錄文件 logfile "/opt/redis/log/redis-6380.log" # 數(shù)據(jù)記錄文件 dbfilename dump-6380.rdb # 追加文件名稱 appendfilename "appendonly-6380.aof" # 下面的配置無需在主服務器上配置 # 備份服務器從屬于主服務器 推薦配置局域網(wǎng)ip slaveof 222.111.213.55 6379
slave2 服務器
# 引用公共配置 include /opt/redis/conf/redis-public.conf # 進程編號記錄文件 pidfile /var/run/redis-6381.pid # 進程端口號 port 6381 # 日志記錄文件 logfile "/opt/redis/log/redis-6381.log" # 數(shù)據(jù)記錄文件 dbfilename dump-6381.rdb # 追加文件名稱 appendfilename "appendonly-6381.aof" # 下面的配置無需在主服務器上配置 # 備份服務器從屬于主服務器 推薦配置局域網(wǎng)ip slaveof 222.111.213.55 6379
六、啟動三個redis
/usr/local/bin/redis-server /opt/redis/conf/redis-6379.conf /usr/local/bin/redis-server /opt/redis/conf/redis-6380.conf /usr/local/bin/redis-server /opt/redis/conf/redis-6381.conf
七、 查看redis的主從狀態(tài)
6379: 進入 redis-cli -p 6379
命令:info replication
# Replication role:master connected_slaves:2 slave0:ip=47.97.223.155,port=6380,state=online,offset=532,lag=0 slave1:ip=47.97.223.155,port=6381,state=online,offset=532,lag=0 master_failover_state:no-failover master_replid:c2e0aeeb9bcf8d7a16914afbe0125f333599d402 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:532 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:532
驗證:主服務器存入鍵值對a:111
set a 111
6380: 進入 redis-cli -p 6380
命令:info replication
# Replication role:slave master_host:47.97.223.155 master_port:6379 master_link_status:up master_last_io_seconds_ago:7 master_sync_in_progress:0 slave_read_repl_offset:644 slave_repl_offset:644 slave_priority:100 slave_read_only:1 replica_announced:1 connected_slaves:0 master_failover_state:no-failover master_replid:c2e0aeeb9bcf8d7a16914afbe0125f333599d402 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:644 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:644

6381: 進入 redis-cli -p 6381
命令:info replication
# Replication role:slave master_host:47.97.223.155 master_port:6379 master_link_status:up master_last_io_seconds_ago:6 master_sync_in_progress:0 slave_read_repl_offset:700 slave_repl_offset:700 slave_priority:100 slave_read_only:1 replica_announced:1 connected_slaves:0 master_failover_state:no-failover master_replid:c2e0aeeb9bcf8d7a16914afbe0125f333599d402 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:700 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:15 repl_backlog_histlen:686

完結(jié)

浙公網(wǎng)安備 33010602011771號