Redis構建簡單的主從復制
阿新 • • 發佈:2017-11-12
redis構建簡單的主從復制
Redis構建簡單的主從復制
原理:
當設置好slave服務器後,slave會建立和master的連接,然後發送sync命令。無論是第一次同步建立的連接還是連接斷開後的重新連 接,master都會啟動一個後臺進程,將數據庫快照保存到文件中,同時master主進程會開始收集新的寫命令並緩存起來。後臺進程完成寫文件 後,master就發送文件給slave,slave將文件保存到磁盤上,然後加載到內存恢復數據庫快照到slave上。
配置前提,關閉防火墻或允許redis端口通行
Centos7
IP:10.0.0.128(master)
IP:10.0.0.129(slave)
主服務器配置:
下載安裝包,解壓並編譯;
[root@master ~]# cd /usr/local/src/ [root@master src]# wget [root@master src]# tar -zxvf redis-stable.tar.gz [root@master src]# mv redis-stable /usr/local/redis [root@master src]# cd /usr/local/redis/ [root@master redis]# make && make install
copy配置文件redis.conf到/etc/目錄下
[root@master redis]# cp redis.conf /etc/
修改配置文件;
[root@master ~]# vim /etc/redis.conf daemonize yes #開啟redis進程 pidfile /var/run/redis_6379.pid #redis進程存放位置 dbfilename dump.rdb #指定快照文件名 dir /var/lib/redis #快照存儲位置 masterauth 123456 #主庫認證密碼 requirepass 123456 #從庫連接密碼 #bind 127.0.0.1 #註釋
啟動redis服務;
[root@master redis]# /usr/local/bin/redis-server /etc/redis.conf [root@master redis]# ps -ef |grep redis root 5925 1 0 20:07 ? 00:00:00 /usr/local/bin/redis-server *:6379 root 5973 1614 0 20:09 pts/0 00:00:00 grep --color=auto redis
從服務器配置;
配置與主服務器一樣,只需要修改配置文件,如下:
slaveof 10.0.0.128 6379 #指向主服務器 masterauth 123456 #主庫設置的密碼
啟動服務;
[root@slave ~]# /usr/local/bin/redis-server /etc/redis.conf
測試:
主服務器
127.0.0.1:6379> AUTH 123456 OK 127.0.0.1:6379> INFO replication # Replication role:master connected_slaves:1 slave0:ip=10.0.0.129,port=6379,state=online,offset=2571,lag=1 master_replid:c44ed3b15b076872c1091054cfd1f0fddd54c0e6 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:2571 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:2571 127.0.0.1:6379> 127.0.0.1:6379> set hello world OK 127.0.0.1:6379> get hello "world" 127.0.0.1:6379
從服務器
[root@slave ~]# redis-cli 127.0.0.1:6379> 127.0.0.1:6379> AUTH 123456 OK 127.0.0.1:6379> INFO replication # Replication role:slave master_host:10.0.0.128 master_port:6379 master_link_status:up master_last_io_seconds_ago:9 master_sync_in_progress:0 slave_repl_offset:2718 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:c44ed3b15b076872c1091054cfd1f0fddd54c0e6 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:2718 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:2718 127.0.0.1:6379> get hello "world" 127.0.0.1:6379> set test hello (error) READONLY You can‘t write against a read only slave. 127.0.0.1:6379> ####從服務器只讀
###其它命令
刪除keys:
127.0.0.1:6379>del keyname
當主服務器down,可以用一下命令將從升主:
127.0.0.1:6379> SLAVEOF NO ONE
本文出自 “XiaoBingZ” 博客,請務必保留此出處http://1767340368.blog.51cto.com/13407496/1981079
Redis構建簡單的主從復制