標籤:
- Android
- IOS
- JavaScript
- HTML5
- CSS
- jQuery
- Python
- PHP
- NodeJS
- Java
- Spring
- MySQL
- MongoDB
- Redis
- NOSQL
- Vim
- C++
- C#
- JSON
- Ruby
- Linux
- Nginx
- Docker
所有分類 > 資料庫相關 > NoSQL資料庫NoSQL之Redis進階實用命令詳解--安全和主從複製NoSQL Redis 2014-01-09 22:52:47 發布
收藏 1收藏
一、安全性
為redis設定密碼:設定用戶端串連後進行任何其他指定前需要實用的密碼。
警告:因為redis速度非常快,所以在一台較好的伺服器下,一個外部使用者可以在一秒鐘進行150k次的密碼嘗試,這意味著你需要指定非常非常強大的密碼來防止暴力破解。
修改密碼的方法:
只需要在redis的設定檔redis.conf中開啟requirepass就可以了,比如我設定我的訪問密碼是mypassword
requirepass mypassword
在redis.conf中加入這一行代碼之後,我們殺死原來的redis進程:pkill redis然後重新啟動redis:/usr/local/redis-2.8.1/src/redis-server /user/local/redis-2.8.1/redis.conf
然後我們用/usr/local/redis-2.8.1/src/redis-cli發現還能登陸進來,但是當我們執行操作的時候,比如keys *就會如下錯誤:
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
沒有必要的授權驗證。
在這裡redis支援兩種授權方式,一種就是直接用auth命令進行授權:
第一次輸入了一個錯誤的密碼test,授權失敗,第二次輸入正確的密碼,返回ok,授權成功,之後就可以進行所有的操作。
如果我們不想每次登入進來之後都要用auth進行授權,那麼我們可以採用另一種授權方式,就是在登陸用戶端的時候用-a 來指定密碼
sh-3.2# /usr/local/redis-2.8.1/src/redis-cli -a mypassword
上面的密碼如果輸錯,也能進入,但是之後不能進行操作。需要用auth重新進行授權。
二、主從複製
Redis主從複製配置和使用都非常簡單。通過主從複製可以允許多個slave server擁有和master server相同的資料庫副本。
redis主從複製的特點:
1.一台master可以擁有多個slave(1對多的關係)
2.多個slave可以串連同一個master外,還可以串連到其他slave(這樣做的原因是如果masterdown掉之後其中的一台slave立馬可以充當master的角色,這樣整個服務流程不受影響)
3.中從複製不會阻塞master,在同步資料的同時,master可以繼續處理client請求。
4.提高系統的伸縮性
redis主從複製的過程:
1.slave與master建立串連,發送sync同步命令。
2.Master會啟動一個後台進程,將資料庫快照集儲存到檔案中,同時master主進程會開始收集新得寫命令並緩衝。
3.後台完成儲存後,將檔案發送給slave
4.slave將檔案儲存到硬碟上
配置主從伺服器:
配置slave伺服器很簡單,只需要在slave的設定檔中加入以下配置:
slaveof masterip masterport
如果主機開啟了登入驗證,那麼還需要加入下面這句:
masterauth authpassword
然後啟動從機,首先主機會發快照給從機,從機的資料庫會更新到和主機相同的狀態,然後往主機裡寫內容,從機也會隨之更新。
如果我們在從機上寫資料那麼會報錯:
(error) READONLY You can‘t write against a read only slave.
我們可以用info命令來查看主從伺服器的資訊,在從機上用info命令可以看到
role:slave
master_host:masterip
master_port:masterport
master_link_status:up證明和主機處在串連狀態
在主機上用info命令
role:master
同時串連著幾台從機
connected_slaves:1
同時可以查看串連到主機上的從機的ip和線上狀態
slave0:ip=192.168.1.107,port=6379,state=online,offset=1709,lag=1
原文地址:http://blog.csdn.net/liutingxu1/article/details/17116107
NoSQL之Redis進階實用命令詳解--安全和主從複製