亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Redis集群節(jié)點擴容大法

IT那活兒 / 859人閱讀
Redis集群節(jié)點擴容大法
[
架構描述
]


redis

組件版本:

redis:5.0.8

節(jié)點架構:

3主3從、6主機

擴容后架構:

6主6從、12主機


[
問題描述
]


Redis(RemoteDictionary Server ),即遠程字典服務,是一個開源的使用ANSIC語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。


redis是一個key-value存儲系統(tǒng),支持存儲的value類型包括string(字符串)、list(鏈表)、set(集合)、zset(sortedset--有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現(xiàn)了master-slave(主從)同步。


某業(yè)務系統(tǒng)采用rediscluster架構,由于數(shù)據(jù)量的增長導致部分數(shù)據(jù)還未過期時就被redis最大內存限制給刪除掉,所以業(yè)務在當前三柱三從架構無法滿足業(yè)務數(shù)據(jù)量持續(xù)增長的情況,需要擴容節(jié)點至六主六從。


[
結構及詳細說明
]


Redis集群大致架構圖:

一組RedisCluster是由多個Redis實例組成,官方推薦使用6實例,其中3個為主節(jié)點,3個為從結點。一旦有主節(jié)點發(fā)生故障的時候,RedisCluster可以選舉出對應的從結點成為新的主節(jié)點,繼續(xù)對外服務,從而保證服務的高可用性。那么對于客戶端來說,知道知道對應的key是要路由到哪一個節(jié)點呢?原來,RedisCluster把所有的數(shù)據(jù)劃分為16384個不同的槽位,可以根據(jù)機器的性能把不同的槽位分配給不同的Redis實例,對于Redis實例來說,他們只會存儲部門的Redis數(shù)據(jù),當然,槽的數(shù)據(jù)是可以遷移的,不同的實例之間,可以通過一定的協(xié)議,進行數(shù)據(jù)遷移。


需要把3主3從擴容為6主6從,就需要增加6個節(jié)點,依次添加3個主節(jié)點hash槽,再添加3個從節(jié)點手動分配給主節(jié)點。



[
操作過程
]


1、創(chuàng)建節(jié)點

復制原有集群節(jié)點的配置文件更改端口目錄等然后再啟動redis,要添加6個節(jié)點需創(chuàng)建6個節(jié)點并啟動:

./redis-server../6001/redis.conf

./redis-server../6002/redis.conf

./redis-server../6003/redis.conf

./redis-server../6004/redis.conf

./redis-server../6005/redis.conf

./redis-server../6006/redis.conf


2、添加主節(jié)點

第一個ip:port為需要添加的節(jié)點ip和端口,第二個ip:port為當前集群中的節(jié)點和端口;先后執(zhí)行以下命令:

./redis-cli--cluster add-node 192.168.8.20:6001 192.168.8.10:7001 -a 123456

./redis-cli--cluster add-node 192.168.8.21:7002 192.168.8.10:7001 -a 123456

……


3、分配hash槽

新添加的節(jié)點沒有哈希槽,并不能正常存儲數(shù)據(jù),需要給新添加的節(jié)點分配哈希槽。


  1. 重新分配哈希槽

./redis-cli--cluster reshard  ip:port -a passwd


  1. 輸入要分配多少個哈希槽(數(shù)量)


  1. 輸入指定要分配哈希槽的節(jié)點ID


  1. 選擇需要分配的哈希槽來源

輸入all需要分配給目標節(jié)點的哈希槽來著當前集群的其他主節(jié)點(每個節(jié)點拿出的數(shù)量為集群自動決定)


分配哈希槽有兩種方式

(1)將所有節(jié)點用作哈希槽的源節(jié)點。

(2)在指定的節(jié)點拿出指定數(shù)量的哈希槽分配到目標節(jié)點:


4、添加從節(jié)點

添加6004節(jié)點(slave的添加方法,master為7004)

#節(jié)點ID是主節(jié)點的ID

#192.168.8.20:6004 是新加的從節(jié)點

#192.168.8.10:7004 作為從節(jié)點的主節(jié)點


./redis-cli--cluster add-node --cluster-slave --cluster-master-idxxxxxxxxxxxxxxxxxxx 192.168.8.20:6004 192.168.8.10:7004


[
總結
]


1、redis擴容一般有兩種方法,一種是在線擴容,一種是離線擴容,從業(yè)務的角度來說,在線擴容是最方便的方法,但在線擴容有個問題是,過程中如果某個槽正在操作會導致遷移槽是發(fā)送錯誤,需要人工干預。


2、離線擴容是比較快速的方法,人工干預比較少由集群自動分配哈希槽,缺點是需停掉業(yè)務。


3、一般來說業(yè)務上線前會對redis緩存數(shù)據(jù)量有一個預估,從而對架構的硬件配置有個預估,就不會產生擴容這個操作,但往往業(yè)務數(shù)據(jù)量是一個動態(tài)的,無法預估的,所以需要通過擴容節(jié)點的操作慢在業(yè)務的需求,需要保證擴容過程正保證數(shù)據(jù)的正確性。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/130085.html

相關文章

  • redis cluster 擴容

    摘要:重新分片,把要刪除的主節(jié)點的數(shù)據(jù)槽移動到其他主節(jié)點上,以免數(shù)據(jù)丟失。分區(qū)完成當前主節(jié)點已經沒有數(shù)據(jù)槽了。這樣就可以實現(xiàn)橫向動態(tài)擴容,新增加的主從節(jié)點,用于存儲新的數(shù)據(jù)則可,對以前的節(jié)點的數(shù)據(jù)不會有任何影響。 需求: A redis cluster 集群 40 臺集群擴容到 68 臺也就是 增加 28 臺新的機器 : 一主一從 為一組,一共12組 前期準備 掃描新增擴容服務器ip是...

    call_me_R 評論0 收藏0
  • Redis集群容器化安裝

    摘要:本文將講解如何基于搭建集群,的集群設計包括兩個部分主從復制和哈希。至此,集群基本安裝成功。后期運維基本命令集群節(jié)點槽常見問題把所有的物理節(jié)點映射到個哈希槽上,負責維護。 Redis集群概述 Redis作為當前非常熱門的內存型數(shù)據(jù)結構存儲,可用于數(shù)據(jù)存儲,緩存和消息代理等。本文將講解如何基于docker搭建Redis集群,Redis的集群設計包括兩個部分:主從復制和哈希Slot。1.1....

    xiaoqibTn 評論0 收藏0
  • Redis集群容器化安裝

    摘要:本文將講解如何基于搭建集群,的集群設計包括兩個部分主從復制和哈希。至此,集群基本安裝成功。后期運維基本命令集群節(jié)點槽常見問題把所有的物理節(jié)點映射到個哈希槽上,負責維護。 Redis集群概述 Redis作為當前非常熱門的內存型數(shù)據(jù)結構存儲,可用于數(shù)據(jù)存儲,緩存和消息代理等。本文將講解如何基于docker搭建Redis集群,Redis的集群設計包括兩個部分:主從復制和哈希Slot。1.1....

    sf_wangchong 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<