Redis筆記(三)添加密碼並修改默認端口後的主從同步


  今天發現在Redhat as 5上編譯2.6.14會報錯,所以下面的演示基於2.4.18,報錯信息:

[root@as5 src]# uname -a
Linux as5.cooly.slum 2.6.18-8.el5xen #1 SMP Fri Jan 26 14:42:21 EST 2007 i686 i686 i386 GNU/Linux
[root@as5 src]# make
    LINK redis-server
zmalloc.o: In function `zmalloc_used_memory':
/root/redis-2.6.14/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4'
collect2: ld 返回 1
make: *** [redis-server] 錯誤 1
[root@as5 src]#

       上一節中redis裝在了三個不同的機器上,已經做了主從,也能正常同步,但是沒有密碼保護,並且使用了默認的端口,下面先說一下本次的主從情況:

master 127.0.0.1 6379  slave1 127.0.0.1 6381 slave2 127.0.0.1 6382

在沒有添加密碼前:

redis 127.0.0.1:6379> get user:name
"zl"

redis 127.0.0.1:6381> get user:name
"zl"

redis 127.0.0.1:6382> get user:name
"zl"

可見,已經主從同步。

先給master設置密碼,redis提供了在線直接修改配置和修改配置文件兩種方法,先使用直接修改,調用命令config set requirepass 密碼,設置成功後,再執行info命令,發現返回錯誤,這是因爲配置已經生效,訪問需要使用密碼,執行命令auth 密碼,再次執行info命令,已經成功:

 redis 127.0.0.1:6379>config set requirepass #pass123#
OK
redis 127.0.0.1:6379> info
ERR operation not permitted
redis 127.0.0.1:6379> auth #pass123#
OK
redis 127.0.0.1:6379> info
redis_version:2.4.18
redis_git_sha1:00000000
redis_git_dirty:0

在master中新增加一個記錄:

redis 127.0.0.1:6379> set user:age 29
OK
redis 127.0.0.1:6379> get user:age
"29"
redis 127.0.0.1:6379>

下面重啓並訪問slave1和slave2【未重啓時還是同步了,我重啓slave1後纔不會正常同步,不知道2.6會不會有這個問題,明天說明20130719-經測試發現,2.6.14版本也是同樣處理的,即,當master使用config set requirepass修改密碼後,修改密碼之前連接的客戶端在沒有重啓的情況下,仍然可以訪問】:

redis 127.0.0.1:6381> keys *
1) "user:name"

slave1中顯示已經和master斷開:

role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:down

slave2中也沒有同步到信息:

redis 127.0.0.1:6382> keys *
1) "user:name"

剛纔設置的user:age並沒有同步,說明設置的密碼已經生效了,此時在slave1中輸入  config set masterauth #pass123#

redis 127.0.0.1:6381> config set masterauth #pass123#
OK
redis 127.0.0.1:6381> get user:age
"29"
redis 127.0.0.1:6381>

再訪問slave2,也能正常取到值了:

redis 127.0.0.1:6382> get user:age
"29"
redis 127.0.0.1:6382>

         至此,已經能訪問添加了密碼的master,剛纔的配置在重啓服務後會丟失,如果永久保存,需要修改配置文件對應的參數,如config set requirepass #pass123#只需要找到redis.conf中的requirepass,把註釋去掉,並修改值爲#pass123#,即可。


轉自:http://blog.csdn.net/ssergsw/article/details/9373575  謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章