redis主從配置及手動切換遇到的問題
阿新 • • 發佈:2017-11-16
redis
解析我做redis主從遇到的問題:
redis只要下載好壓縮包後解壓縮然後make就可以直接使用了,啟動服務是:
/usr/local/src/redis/src/redis-server
然後進入交互界面是:
/usr/lcoal/src/redis/src/reids-cli
假如沒有更改port那麽默認監聽6379端口,如果改了,登錄時務必在後面-p 端口號。才能登錄。
然後如果更改了redis.conf文件那麽啟動時:
/usr/local/src/redis/src/redis-server /usr/local/src/redis/redis.conf
這樣才能出發配置。
接下來開始配置主從:
1、修改主redis的配置文件:
daemonize yes bind 127.0.0.1 ###要麽把這句屏蔽掉,要麽後面的ip改為自己的,但是登錄時又要-h加上IP地址。 protected-mode no ##要麽改為no,要麽就添加認證,那麽在登錄時就要先驗證才能登陸。
2、修改從redis的配置文件:
daemonize yes port 6380 ##改變下端口 logfile "/usr/local/src/redis.log" ##redis默認是不記錄日誌的,這裏寫一個日誌的路徑,好排錯。 slaveof 192.168.40.12 6379 ##設置為40.12的從redis。
然後兩臺服務器都啟動:
[root@centosa ~]# /usr/local/src/redis-3.2.1/src/redis-server /usr/local/src/redis-3.2.1/redis.conf [root@centosb redis-3.2.1]# /usr/local/src/redis-3.2.1/src/redis-server /usr/local/src/redis-3.2.1/redis.conf
登錄然後測試一下同步:
[root@centosa ~]# /usr/local/src/redis-3.2.1/src/redis-cli 127.0.0.1:6379> set test 123 OK 127.0.0.1:6379> get test "123" [root@centosb redis-3.2.1]# /usr/local/src/redis-3.2.1/src/redis-cli -p 6380 127.0.0.1:6380> get test "123"
如果出現錯誤可以查看一下日誌:/usr/lcoal/src/redis.log
如果要設置驗證,在配置文件中修改一下:
requirepass redhat ##取消這一句的註釋,然後後面改為自己的密碼。 重新啟動。 但是下次登錄時,什麽也做不了,要麽: auth redhat ##登錄後先輸入一句,驗證。
或者是在登錄時加上-a redhat 這樣就可以了。
持久化:
rdb:
配置文件默認開啟:
save 900 1 save 300 10 save 60 10000
會在安裝目錄下生成一個dump.rdb文件,這就是保存著緩存數據的文件。
rdb適合恢復大規模數據,但是恢復數據的完整性不高。
oaf(默認不開啟):
修改配置文件: appendonly yes appendfsync everysec ##每秒寫入一次。
主從切換:
停止主的服務。
然後在從操作:
127.0.0.1:6380> slaveof no one 127.0.0.1:6380> info replication # Replication role:master connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
127.0.0.1:6380> set name lsf OK 127.0.0.1:6380> set host redhat OK 127.0.0.1:6380> 127.0.0.1:6380> save OK
然後把dump.rdb復制到原來的主redis:
[root@centosb redis-3.2.1]# scp dump.rdb centosa:/usr/local/src/redis-3.2.1/ dump.rdb
啟動原來的主服務器:
[root@centosa redis-3.2.1]# /usr/local/src/redis-3.2.1/src/redis-server /usr/local/src/redis-3.2.1/redis.conf
然後看一下keys;
[root@centosa redis-3.2.1]# /usr/local/src/redis-3.2.1/src/redis-cli 127.0.0.1:6379> 127.0.0.1:6379> keys * 1) "mylist" 2) "host" 3) "name" 127.0.0.1:6379> get name "lsf" 127.0.0.1:6379> get host "redhat"
再把現在的主切換成從,原來的主恢復主的身份:
127.0.0.1:6380> slaveof 192.168.40.12 6379 OK 127.0.0.1:6380> info replication # Replication role:slave master_host:192.168.40.12 master_port:6379 master_link_status:up master_last_io_seconds_ago:1 master_sync_in_progress:0 slave_repl_offset:15 slave_priority:100 slave_read_only:1 connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
查看一下主的狀態:
127.0.0.1:6379> info replication # Replication role:master connected_slaves:1 slave0:ip=192.168.40.19,port=6380,state=online,offset=365,lag=0 master_repl_offset:365 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:2 repl_backlog_histlen:364
本文出自 “運維小記” 博客,請務必保留此出處http://lsfandlinux.blog.51cto.com/13405754/1982366
redis主從配置及手動切換遇到的問題