redis 運維問題持續整理

1、redis備份

* redis備份
 1、利用redis-cli 登錄redis
 2、執行 SAVE命令            #會阻斷redis主進程,導致客戶端法連接redis
 3、config get dir命令可查看備份文件的目錄
 4、也可使用bgsave后臺備份,不會阻斷主進程
 #恢復
 1、將備份文件放置 config get dir  獲取的目錄下
 2、重啟redis 服務
 
* 數據遷移工具  redis-migrate-tool

2、redis集群原理,分片

redis原理:redis 3.0版本之前是不支持集群的,官方推薦最大的節點數量為1000,至少需要3(Master)+3(Slave)才能建立集群,是無中心的分布式存儲架構,可以在多個節點之間進行數據共享,解決了Redis高可用、可擴展等問題。集群可以將數據自動切分(split)到多個節點,當集群中的某一個節點故障時,redis還可以繼續處理客戶端的請求。
支撐n個redis master node,每個master node 都可以掛載多個slave node
讀寫分離的架構,對于每個master來說,寫就寫到master,然后讀就從mater對應的slave去讀
高可用,因為每個master都有slave節點,那么如果master掛掉了,redis cluster這套機制,就會將某個slave切換成master
我們只要基于redis cluster 去搭建redis集群即可,不需要手工搭建replication復制+主從架構+讀寫分離+哨兵集群+高可用
自動將數據進行分片,每個master上放一部分數據,提供內置的高可用支持,部分master不可用時,還是可以繼續工作。

redis分片:就是將數據拆分到多個 Redis 實例的過程,這樣每個實例將只包含所有鍵的子集。當數據量大的時候,把數據分散存入多個數據庫中,減少單節點的連接壓力,實現海量數據存儲。
    分片部署方式一般有三種:
    (1)在客戶端做分片;這種方式在客戶端確定要連接的redis實例,然后直接訪問相應的redis實例
    (2)在代理中做分片;這種方式中,客戶端并不直接訪問redis實例,它也不知道自己要訪問的具體是哪個redis實例,而是由代理轉發請求和結果;其工作過程為:客戶端先將請求發送給代理,代理通過分片算法確定要訪問的是哪個redis實例,然后將請求發送給相應的redis實例,redis實例將結果返回給代理,代理最后將結果返回給客戶端
    (3)在redis服務器端做分片;這種方式被稱為“查詢路由”,在這種方式中客戶端隨機選擇一個redis實例發送請求,如果所請求的內容不再當前redis實例中它會負責將請求轉交給正確的redis實例,也有的實現中,redis實例不會轉發請求,而是將正確redis的信息發給客戶端,由客戶端再去向正確的redis實例發送請求。
https://www.cnblogs.com/niyueling/p/11655787.html


redis用在了哪些環境:
java、php環境用到了redis,主要緩存有登錄用戶信息數據、設備詳情數據、會員簽到數據等

3、

4、

5、

6、

7、

8、

9、

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容