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構建集群

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447279.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447279.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447279.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

永遠和靠譜的人在一起!

巴菲特每年都會同大學生進行座談,在一次交流會上,有學生問他:您認為一個人最重要的品質是什么?巴菲特沒有正面回答這個問題,而是講了一個小游戲,名為:買進你同學的10%。 巴菲特說:現在給你們一…

Redis事務詳解

傳統事務的特性 原子性一致性隔離性:事務之間互不干擾持久化:一旦事務提交,無法修改 Redis事務機制 MULTI、EXEC、DISCARD和WATCH命令是Redis事務功能的基礎。Redis事務允許在一次單獨的步驟中執行一組命令,并且可以保證如下兩個…

工作的最終目的

當時公司招了大批應屆本科和研究生畢業的新新人類。平均年齡25歲。那個新的助理,是經過多次面試后,我親自招回來的一個女孩。名牌大學本科畢業,聰明,性格活潑。私下里我得承認,我招她的一個很重要的原因,除…

銷售員所做的一切工作最終目的就是為了成交

(1)最后一次報價禁忌.報價過晚或者過于匆忙步幅度太大,顯得過于慷慨;讓步幅度太小,顯得毫無意義當談判進展到最后,雙方只是在最后的某一兩個問題上尚有不同意見,過讓步才能求得一致,簽訂協議。在…

Redis java客戶端操作

jedis jedis官方指定的redis java客戶端&#xff0c;將其導入到pom.xml問價內 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><vers…

HEVC/H265 namespace 介紹

在 HEVC/H265 代碼中&#xff0c;有三個使用的namespace&#xff1a; 1. df 2. df::program_options_lite 3. RasterAddress 對于第一個 df 的namespace&#xff0c;我一直百思不得其解&#xff0c;df 是什么含義&#xff1f;老外對起名是很重視的&#xff0c;肯定有原因。…

Redis整合Springboot實現數據共享

代碼的整體結構 RedisSessionConfig.java package com.cc.springbootredissession.config;import org.springframework.context.annotation.Configuration; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;Configuration E…

人生什么最重要

什么最重要 20歲的人說,學習成績最重要.一次考試分數,可以把人分為三六九等.&#xff02;博士&#xff02;,&#xff02;本科&#xff02;,&#xff02;大專&#xff02;&#xff02;高職&#xff02;&#xff02;中專&#xff02;,成績好的上好學校,成績差的上差學校;成績好的…

Redis整合Springboot實現單機配置

整體結構 配置文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/…

撐起整個互聯網的7大開源技術

撐起整個互聯網的7大開源技術 很多人可能尚未意識到&#xff0c;我們使用的電腦中運行有開源軟件&#xff0c;手機中運行有開源軟件&#xff0c;家里的電視也運行有開源軟件&#xff0c;甚至小小的數碼產品中也運行有開源軟件&#xff0c;尤其是互聯網服務器端軟件&#xff0c…

Redis整合springboot實現哨兵模式

整體結構 RedisConfig package com.cc.springredis.config;import com.cc.springredis.RedisUtil; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.R…

Redis整合springboot實現集群模式

整體結構 Redis.config package com.cc.springredis.config;import com.cc.springredis.RedisUtil; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection…

一個窮人是從什么時候開始有錢的?

2010年&#xff0c;文野31歲那年&#xff0c;買房后第二年&#xff0c;完成了「人生中最重要的一次轉變」。 這一年&#xff0c;他在心里對自己的定位&#xff0c;從窮人變成了有錢人。 「一些人哪怕有錢了&#xff0c;心里也永遠甩不脫窮的影子。」這是我曾經在《 階段性勝…

Redis整合springboot實現消息隊列

publisher消息的發出 代碼整體的結構 publisherConfig package com.cc.springbootredispublisher.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.conne…

人最重要的能力是什么?

我見過很多人有能力、能成功&#xff0c;但并不幸福。人最重要的能力是什么? 人生最重要的能力是什么?我的答案是&#xff0c;隨時保持內心平靜的能力。 我開始想到的是“堅持”&#xff0c;后來我認為不對&#xff0c;“堅持”僅僅是成功所必備的能力&#xff0c;并不是人生…

Redis數據緩存

代碼的整體結構 配置文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apac…

hevc/265 開源項目及相關

1.X265 個是有兩個版本&#xff0c;一個是國內人搞的&#xff0c;是國外公司搞的 1.國外公司版本 只是一個編碼器&#xff0c;目前沒有支持解碼 開發語言 c web url: www.x265.org source url: https://bitbucket.org/multicoreware/x265 x265 is an open-source projec…

IPFS星際文件系統的簡介

IPFS簡介 IPFS&#xff08;InterPlanetary File System&#xff09;叫星際文件傳輸系統&#xff0c;本質是一個基于點對點的分布式超媒體分發協議&#xff0c;它整合了分布式系統&#xff0c;為所有人提供全球統一的可尋址空間&#xff0c;因為他具有良好的安全性、較高的傳輸…

ARM和NEON指令 very nice

在移動平臺上進行一些復雜算法的開發&#xff0c;一般需要用到指令集來進行加速。目前在移動上使用最多的是ARM芯片。 ARM是微處理器行業的一家知名企業&#xff0c;其芯片結構有&#xff1a;armv5、armv6、armv7和armv8系列。芯片類型有&#xff1a;arm7、arm9、arm11、corte…

IPFS下載安裝和配置

參考鏈接 因為這個網站訪問速度很慢&#xff0c;我提供了IPFS的MAC版本。有需要的查看我的資源下載。 大致流程 安裝 $ ls go-ipfs_v0.4.10_darwin-amd64.tar.gz $ tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz x go-ipfs/build-log x go-ipfs/install.sh x go-ipfs/ipfs…