日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis Cluster集群模式

發布時間:2023/12/13 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis Cluster集群模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Redis Cluster

  • 它是Redis的分布式解決方案,在Redis 3.0版本正式推出的,有效解決了Redis分布式方面的需求。當遇到單機內存、并發、流量等瓶頸時,可以采用Cluster架構達到負載均衡的目的。
  • 數據分布理論: 分布式數據庫首要解決把整個數據集按照分區規則映射到多個節點的問題,即把數據集劃分到多個節點上,每個節點負責整個數據的一個子集。常見的分區規則有哈希分區順序分區。Redis Cluster采用哈希分區規則,因此接下來會討論哈希分區規則。
  • 常見的哈希分區有以下幾種: 節點取余分區;一致性哈希分區;虛擬槽分區

順序分區

  • 可以順序訪問
  • 數據分散,容易傾斜
  • 舉例:HBase和bigtable

哈希分布

節點取余

  • 數據節點關系變化很大,導致數據遷移,遷移的數量和添加節點有關
  • 最好翻倍擴容

一致性哈希分區

  • 只影響相鄰節點,但還是會有數據遷移

?

redis采用的虛擬槽分區

  • 每一個槽都會映射一個數據子集
  • key會根據CRC16(哈希函數)來計算槽范圍

?

redis集群功能限制

  • key批量操作支持有限。如:MSET``MGET,目前只支持具有相同slot值的key執行批量操作
  • key事務操作支持有限。支持多key在同一節點上的事務操作,不支持分布在多個節點的事務功能
  • key作為數據分區的最小粒度,因此不能將一個大的鍵值對象映射到不同的節點。如:hash、list
  • 不支持多數據庫空間。單機下Redis支持16個數據庫,集群模式下只能使用一個數據庫空間,即db 0

集群安裝 配置

  • 需要最少六臺redis節點,其中三臺用來設置槽的范圍(6380、6381、6382),其余三臺用于Redis cluster(638{3-5})
  • 6380,6381,6382作為主節點,6383,6384,6385作為從節點
  • 和以往操作一樣,新建一個文件夾,mkdir cluster作為集群安裝的基礎文件夾,在里面以端口進行文件夾的創建
  • mkdir -pv {6380,6381,6382,6383,6384,6385}/{conf,data,logs}以端口建文件夾,以及對應的conf、data和logs配套文件夾
  • 在6380的文件夾下的conf文件夾下,新建redis.conf文件,輸入的內容如下
daemonize yespidfile /usr/local/redis-4.0.14/cluster/6380/redis.pidport 6380loglevel noticeprotected-mode nologfile "/usr/local/redis-4.0.14/cluster/6380/logs/redis.log"dir /usr/local/redis-4.0.14/cluster/6380/data## 集群模式配置cluster-enabled yescluster-node-timeout 15000cluster-config-file /usr/local/redis-4.0.14/cluster/6380/nodes.conf
  • 將其拷貝到其余的集群文件所對應的文件夾下,cp 6380/conf/redis.conf 6381/conf/,此刻是在cluster的文件目錄內進行此操作
  • 將redis.conf里面的端口信息使用命令進行修改,別的不需要改變,sed -i 's/6380/6381/g' 6381/conf/redis.conf,以上的兩個操作適用于全部的端口文件
  • 在src目錄下,啟動所有的集群服務redis-server /usr/local/redis-4.0.14/cluster/6380/conf/redis.conf,其余的類似
  • 使用命令查看狀態ps -ef|grep redis,可以看到,redis的后年會標有【cluster】的標志
  • 使用命令,連接到6380接口,redis-cli -p 6380
  • ?使用info命令查看相關信息,在redis-cli里面進行操作
  • CLUSTER nodes查看集群的節點,前面的字符串是集群ID,在redis-cli里面進行操作
  • cluster meet 192.168.33.130 6381,將其余的節點加入到集群中,在redis-cli里面進行操作
  • 給每一個集群的節點分配槽,使用命令redis-cli -p 6380 cluster addslots {0..5461},需要退出redis-cli進行操作
  • redis-cli -p 6381?cluster addslots {5462..10922}
  • redis-cli -p 6382?cluster addslots {10923..16383}

  • ?將6383作為6380的從節點,redis-cli -p 6383 cluster replicate 6380的序列號
  • 同理將6384和6385配置成為6381和6382的從節點
  • 可以使用ruby可以簡化集群配置的流程

集群模式的要求

  • 安裝ruby(大于2.2.2)
  • 安裝redis 集群配置
  • 安裝gem
  • 安裝ruby的redis包
  • redis-trib.rb構建集群

總結

以上是生活随笔為你收集整理的Redis Cluster集群模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。