一、資料分布
redis cluster採用雜湊分割槽規則:離散度好、資料分布業務無關、無法順序訪問
1.節點取餘分割槽:hask(key)%n,n為節點數量
優點:簡單,常用於資料庫分庫分表
缺點:節點數量變化導致資料重新遷移
2.一致性雜湊分割槽:每個節點分配乙個token,構成乙個雜湊環,根據雜湊值在環上找到第乙個大於等於該雜湊值的token節點
優點:節點的變動只影響相鄰節點資料
缺點:節點變動導致資料無法移動,節點越小影響範圍越大
3.虛擬槽分割槽
使用雜湊函式把資料對映到固定範圍的整數集合中,這些整數定義為槽,每個節點負責一定數量的槽
redis cluster採用該分割槽方法
虛擬槽分割槽:
redis槽範圍0~16383
槽是集群內資料管理和遷移的基本單位
採用大範圍槽的主要目的是為了方便資料拆分和集群擴充套件
由於高質量的雜湊演算法,每個槽所對映的資料通常比較均勻
二、cluster集群功能限制:
1.key批量操作支援有限。只支援具有相同slot的key進行批量操作
2.key事務操作支援有限
3.key做為分割槽的最小粒度,不能將大的鍵值物件進行分割槽
4.不支援多資料庫空間,只能使用db0
5.複製結構只支援一層,從節點只能複製主節點
三、手動搭建集群:
修改配置檔案
# 設定配置檔案目錄 sudo mkdir -p /etc/redis/redis-cluster/7000 cd /etc/redis/ # 建立乙份配置檔案,cluster架構-3主3從 sudo cp redis.conf redis-cluster/7000/redis.conf # 修改配置檔案 sudo vim redis-cluster/7000/redis.conf
配置檔案修改如下部分
啟動redis
cd /etc/redis/redis-cluster/ sudo redis-server 7000/redis.conf sudo redis-server 7001/redis.conf sudo redis-server 7002/redis.conf sudo redis-server 7003/redis.conf sudo redis-server 7004/redis.conf sudo redis-server 7005/redis.conf
建立集群
sudo redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1 # 等一會 然後輸入 yes
檢視集群狀態:cluster nodes
注意事項:
無論是在redis-server 5.x版本,還是老的ruby建立集群的方式, 在create cluster的環節是不能配置redis密碼的
如果設定了密碼,redis-cli --cluster create會報使用者認證失敗的錯誤
在搭建集群時去除所有redis節點的密碼,也就是redis-cli --cluster create 的時候是沒有密碼引數配置的
當集群配置完成後,通過config set的方式動態的為每乙個節點設定密碼(不需要重啟redis,且重啟後仍然有效)
$ redis-cli -h 127.0.0.1 -p 6379 -c
127.0.0.1:6379> config set requirepass 'password' // 設定密碼
127.0.0.1:6379> config set masterauth 'password' // 設定連線密碼
127.0.0.1:6379> config rewrite // 把config set 操作寫入配置檔案中
設定密碼後連線集群 redis-cli -h 127.0.0.1 -p 6379 -c -a password
redis cluster模式詳解
縱向就是增加記憶體,磁碟.簡單暴力.但是存在一些問題 1.如果用rdb持久化,那麼記憶體也會需要很多,fork時阻塞時間也會變長 2.記憶體擴充套件受限.擴充套件1t記憶體,不太現實 因此redis3.0 推出了集群模式 1.將資料分配在16384個槽裡.資料通過 hash 取模,計算出key應該存...
CygWin安裝RedisCluster指南
安裝前確認磁碟有6g以上的磁碟容量,安裝時雙擊setup x86 64.exe,基本按照預設設定安裝就行,也可自己指定安裝路徑等,3 deps hiredis net.c中注釋掉 並在 include sds.h 之後追加 ifdef cygwin define tcp keepcnt 8 defi...
RedisCluster搭建步驟
安裝redis 配置並啟動redis節點 選兩台機器執行該步驟 把redis安裝目錄redis.conf修改如下並複製進對應的700 資料夾 bind 10.11.147.40 redis安裝機器ip 注意這裡千萬不要用127.0.0.1或者注釋掉這行,以上兩種都會導致遠端機器連線不到redis p...