Redis筆記(三)添加密碼並修改預設連接埠後的主從同步

來源:互聯網
上載者:User

     今天發現在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#,即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.