Redis經常使用基礎 主從 哨兵 集羣

redis高性能且線程安全緣由:

單線程(若是想一臺機子讓redis多線程,能夠選擇集羣方式,每個redis進程都用一個CPU,充分壓榨CPU)
多路複用IO(雖然單線程,但響應快的緣由)html

基礎數據模型以及應用場景:

連接git

使用框架:

我以爲好用: csredis .net core使用 基礎初始化類github

持久化:

RDB:經過子進程進行數據拷貝而且二進制存儲redis

AOF:經過記錄操做日誌進行持久化windows

windows版本redis主從:

主從同步原理以及優化方向安全

# 在從庫redis節點配置主庫就能夠,主庫會識別從庫,若是有密碼須要配置密碼
# slaveof <masterip> <masterport>
複製代碼

windows版本redis 哨兵

監控redis主庫服務,主庫宕機會自動從其關聯的從庫選舉master節點ruby

# 這個是Redis6379配置內容,其餘文件同理新增而後改一下端口便可,26380,和 26381。

#當前Sentinel服務運行的端口
port 26379  
# 哨兵監聽的主服務器 2 是決定選舉的最低票數
sentinel monitor mymaster 127.0.0.1 6379 2
# 密碼
sentinel auth-pass mymaster 123
# 3s內mymaster無響應,則認爲mymaster宕機了
sentinel down-after-milliseconds mymaster 3000
#若是10秒後,mysater仍沒啓動過來,則啓動failover 
sentinel failover-timeout mymaster 10000  
# 執行故障轉移時, 最多有1個從服務器同時對新的主服務器進行同步
sentinel parallel-syncs mymaster 1
複製代碼

主從+哨兵實踐.rarbash

redis集羣分區原理:

twemproxy(中間件代理技術):把整個集羣空間邏輯計算爲16384個哈希槽, 有多少個分區就是把這些槽平均分爲多少份,經過hash計算每條數據應該存放在哪一個槽區間(意味着redis集羣擴容有上限,超過了這個就要用其餘處理方法),這個過程對客戶端是透明的服務器

  • 個人理解是主從就是單一主庫,能夠多個從庫,集羣就是把主從升級爲多個主庫,其中一個主庫宕機就會選其對應從庫升主,若是沒有對應從庫,整個集羣就宕了多線程

  • redis每一個實例也是全量存儲,每一個redis存儲的內容都是完整的數據,浪費內存且有木桶效應。爲了最大化利用內存,能夠採用集羣,就是分佈式存儲

  • 集羣示意圖

  • 實踐要素 windows下搭建:

  1. 裝ruby
  2. 替換ruby的redis驅動 選你使用的redis對應的版本最佳,防止不兼容的狀況
  3. 啓動程序 這段代碼就是啓動程序,放到其中一個master節點經過這段程序啓動
#執行命令時候路徑不能存在中文,不然直接報錯
#把redis-trib.rb文件搞成utf8格式
redis-trib.rb create --replicas 0 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 
複製代碼

集羣實踐.rar

相關文章
相關標籤/搜索