Redis SAVE 命令用於創建當前數據庫的備份。
步驟:
1、連接上需要做數據備份的redis實例
![redis高級特性](http://p2.ttnews.xyz/loading.gif)
2、執行SAVE 命令 該命令將在 redis 安裝目錄中創建dump.rdb文件。
![redis高級特性](http://p2.ttnews.xyz/loading.gif)
恢復數據
如果需要恢復數據,只需將備份文件 (dump.rdb) 移動到 redis 安裝目錄並啟動服務即可。獲取 redis 目錄可以使用CONFIG 命令,如下所示:
以上命令 CONFIG GET dir 輸出的 redis 安裝目錄為 /usr/local/redis-cluster/7031
創建 redis 備份文件也可以使用命令 BGSAVE,該命令在後臺執行。
Redis的安全
我們可以通過 redis 的配置文件設置密碼參數,這樣客戶端連接到 redis 服務就需要密碼驗證,這樣可以讓你的redis 服務更安全。
Redis的管道技術
Redis是一種基於客戶端-服務端模型以及請求/響應協議的TCP服務。這意味著通常情況下一個請求會遵循以下步驟:
客戶端向服務端發送一個查詢請求,並監聽Socket返回,通常是以阻塞模式,等待服務端響應。
服務端處理命令,並將結果返回給客戶端。
Redis 管道技術可以在服務端未響應時,客戶端可以繼續向服務端發送請求,並最終一次性讀取所有服務端的響應。
Redis管道技術的優勢是:顯著的提高了redis的性能
使用的場景:批量的向redis中插入數據
Redis分區
Redis分區:分區是分割數據到多個Redis實例的處理過程,因此每個實例只保存key的一個子集。
分區的優勢
通過利用多臺計算機內存的和值,構造更大的數據庫。
通過多核和多臺計算機,擴展計算能力;
通過多臺計算機和網絡適配器,擴展網絡帶寬。
分區的不足
redis的一些特性在分區方面表現的不是很好:
涉及多個key的操作通常是不被支持的。舉例來說,當兩個set映射到不同的redis實例上時,你就不能對這兩個set執行交集操作。
涉及多個key的redis事務不能使用。
當使用分區時,數據處理較為複雜,比如你需要處理多個rdb/aof文件,並且從多個實例和主機備份持久化文件。
增加或刪除容量也比較複雜。redis集群大多數支持在運行時增加、刪除節點的透明數據平衡的能力,但是類似於客戶端分區、代理等其他系統則不支持這項特性
Redis的分區的類型
1、範圍分區
最簡單的分區方式是按範圍分區,就是映射一定範圍的對象到特定的Redis實例。
比如,ID從0到10000的用戶會保存到實例R0,ID從10001到 20000的用戶會保存到R1,以此類推。
這種方式是可行的,並且在實際中使用,不足就是要有一個區間範圍到實例的映射表。這個表要被管理,同時還需要各 種對象的映射表,通常對Redis來說並非是好的方法。
2、哈希分區
另外一種分區方法是hash分區。這對任何key都適用,也無需是object_name:這種形式,像下面描述的一樣簡單:
用一個hash函數將key轉換為一個數字,比如使用crc32 hash函數。對key XXXX執行crc32(XXXX)會輸出類似93024922的整數。
對這個整數取模,將其轉化為0-3之間的數字,就可以將這個整數映射到4個Redis實例中的一個了。93024922 % 4 = 2,就是說key foobar應該被存到R2實例中。注意:取模操作是取除的餘數,通常在程序中用%操作符實現。
閱讀更多 JAVA技術開發 的文章