Redis進階實用特性

來源:互聯網
上載者:User

標籤:

1、安全性

設定用戶端串連後進行任何其他指定前需要使用的密碼。警告:因為redis速度相當快,所以在一台比較好的伺服器下,一個外部的使用者可以在一秒鐘進行150k次的密碼嘗試,這意味著需要指定非常非常強大的密碼來防止暴力破解。首先在設定檔redis.conf裡設定密碼,這就設定好密碼了,然後把redis用戶端重啟一下,再次進入,並進行操作的時候就需要認證,有兩種認證方式1)、在redis用戶端裡操作 auth  密碼2)、在登入用戶端的時候輸入密碼./redis-cli -a 密碼  2、主從複製Redis主從複製配置和使用都非常簡單。通過主從複製可以允許多個slave server擁有和master server相同的資料庫副本。Redis主從複製特點:1)、master可以擁有多個slave;2)、多個slave可以串連同一個master外,還可以串連到其他slave;3)、主從複製不會阻塞master,在同步時資料的時候,master可以繼續處理client請求;4)、提高系統的伸縮性。Redis主從複製過程:1)、Slave與mater建立串連,發送sync同步命令;2)、Master會啟動一個後台進程,將資料庫快照集儲存到檔案中,同時master主進程會開始收集新的寫命令並緩衝;3)、後台完成儲存後,就將此檔案發送給slave;4)、Slave將此檔案儲存到硬碟上。Redis主從複製配置:配置slave伺服器很簡單,只需要在slave的設定檔中加入以下配置slaveof 主機ip地址  主機連接埠mastrauth   主機密碼然後就可以進行主從複製了查看主機與從機的一些資訊,在用戶端裡輸入命令info主機部分資訊:從機部分資訊:  3、交易處理Redis對事物的支援目前還比較簡單。Redis只能保證一個client發起的事務中的命令可以連續的執行,而中間不會插入其他client的命令。當一個client在一個串連中發出multi命令時,這個串連會進入一個事務上下文,該串連後續的命令不會立即執行,而是先放到一個隊列中,當執行exec命令時,redis會順序的執行隊列中的所有命令。取消一個事物  discard可以發現這次2個set age命令都沒有被執行。discard命令其實就是清空事物的命令隊列並退出事物上下文,也就是我們常說的事物復原。redis的事物處理比較簡單,有待改進,體現在:執行兩個命令的時候,一條正確命令,一條錯誤命令,redis不會像其他資料庫一樣進行完全的復原操作,即不進行任何操作,而是將那條正確的命令給執行了,在某些情況下,會導致嚴重的錯誤,所以說redis的事物處理有待改進。樂觀鎖複雜事物控制:樂觀鎖:大多數是基於資料版本(version)的記錄機制實現的。即為資料增加一個版本標識,在基於資料庫表的版本解決方案中,一般是通過為資料庫表添加一個“version”欄位來實現讀取出資料時,將此版本號碼一同讀出,之後更新時,對此版本號碼加1。此時,將提交資料的版本號碼與資料庫表對應記錄的目前的版本號進行比對,如果提交的資料版本號碼大於資料庫目前的版本號,則予以更新,否則認為是到期資料。watch命令會監視給定的key,當exec時候如果監視的key從調用watch後發生過變化,則整個事務會失敗。也可以調用watch多次監視多個key,這樣就可以對指定的key加樂觀鎖了。注意watch的key是對整個串連有效,事物也一樣。如果;串連斷開,監視和事務都會被自動清除。當然了exec,discard,unwatch命令都會清除串連中的所有監視。
  4、持久化機制Redis是一個持久化的記憶體資料庫,也就是說redis需要經常將記憶體中的資料同步到硬碟來保證持久化。Redis支援兩種持久化方式:1)、snapshotting(快照)也是預設的方式    在硬碟中儲存資料本身2)、Append-only  file(縮寫aof)的方式     在硬碟中儲存對資料庫的操作快照是預設的持久化方式。這種方式是將記憶體中資料以快照的方式寫入到二進位檔案中,預設的檔案名稱為dunp.rdb。可以通過配置設定自動做快照持久化的方式。我們可以配置redis在n秒內如果超過m個key被修改就自動做快照由於快照方式是在一定間隔時間做一次的,如果redis意外down掉的話,就會丟失最後一次快照後的所有修改。aof比快照方式有更好的持久化性,是由於在使用aof時,redis會將每一個收到的寫命令都通過write函數追加到檔案中,當redis重啟時會通過重新執行檔案中儲存的命令來在記憶體中重建整個資料庫的內容。當然由於os會在核心中緩衝write做的修改,所以可能不是立即寫到磁碟上。這樣aof方式的持久化也還是有可能丟失部分修改。可以通過設定檔告訴redis我們想要通過fsync函數os寫入到磁碟的時機 5、發布及訂閱訊息發布訂閱(pub/sub)是一種訊息通訊模式,主要的目的是解除訊息發行者和訊息訂閱者之間的耦合,redis作為一pub/sub的server,在訂閱者和發行者之間起到了訊息路由的功能。訂閱者可以通過subscribe和psubscribe命令向redis server訂閱自己感興趣的訊息類型,redis將資訊類型稱為通道(channel)。當發行者通過publish命令向redis server發送特定類型的資訊的時候,訂閱該訊息類型的全部client都會收到到此訊息。 6、虛擬記憶體的使用Redis的虛擬記憶體和作業系統的虛擬記憶體不是一回事,但是思路和目的都是相同的。就是暫時把不經常訪問的資料從記憶體交換到磁碟中,從而騰出寶貴的記憶體空間用於其他需要訪問的資料。尤其是對於redis這樣的記憶體資料庫,記憶體總是不夠用的。除了可以將資料分割到多個redis server外。另外能夠提高資料庫容量的辦法就是使用虛擬記憶體把那些不經常訪問的資料交換到磁碟上。  



 



Redis進階實用特性

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.