Redis集羣分片環境部署

原理

集羣技術是構建高併發網站的主要技術,訪問網站的最大壓力是在訪問某個頁面時,須要時查詢數據庫並相應,Redis從3.0版本之後開始支持集羣功能了,要讓集羣正常工做至少得有三個主節點。
Redis集羣是基於哈希槽(hash slot)的概念來實現的,redis只集成了16384個槽,當在redis中放置一個KYE的時候,redis會經過對這個KEY用crc16算法算出一個值,而後將這個值對16383求餘,這樣每一個KEY都會對應一個編號在0-16383間,redis會根據節點的數量將哈希槽分配到不一樣的節點。
當要取這個某一個KEY的值的時候,redis會經過要獲取的KYE名,經過crc16算出一個值,而後和16383求餘,經過餘找到相應的節點,再在這個節點上找這個KEY值。
Redis延續了讀寫分離的特性,每一個主節點都會有一個從節點,從節點也能夠有從節點。
主節點負責寫入,從節點負責讀取內存中的數據.
Node與Node互相監聽,一旦有Node退出,其餘幾個Node會自動均分退出Node的slot,
他們本身的slot不會被從新分配,全部並不影響其餘slot的使用
Redis集羣分片環境部署node

環境

三臺機器一臺機器能夠用多個端口開多個redisredis

192.168.123.160:6379 192.168.123.160:6380
192.168.123.170:6379 192.168.123.170:6380
192.168.123.180:6379 192.168.123.180:6380

Redis安裝包裏自帶有redis集羣工具
集羣工具須要的安裝包
算法

zlib-1.2.8.tar.gz http://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz
ruby-2.2.9.tar.gz https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.9.tar.gz
rubygems-2.5.1.tgz https://rubygems.global.ssl.fastly.net/rubygems/rubygems-2.5.1.tgz
redis-3.2.2.gem https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.gem
redis-3.2.3.tar.gz http://download.redis.io/releases/redis-3.2.3.tar.gz數據庫

配置

安裝zlibruby

gunzip zlib-1.2.8.tar.gz
tar -xvf zlib-1.2.8.tar
cd zlib-1.2.8
./configure
make
make install

安裝ruby
由於yum安裝的版本較低,不支持高版本的redis集羣,全部咱們使用高版本的服務器

tar -zxvf ruby-2.2.9.tar.gz
cd ruby-2.2.4
./configure -prefix=/usr/local/ruby
make
maek install 
cp ruby /bin

安裝rubygems併發

tar -zxvf rubygems-2.5.1.tgz
cd rubygems-2.5.1
ruby setup.rb
cp bin/gem /bin

安裝gem-rediside

gem install -l redis-3.2.2.gem

redis( 在這3臺服務器都須要安裝高併發

tar -zxvf redis-3.2.3.tar.gz
cd redis-3.2.3
make

redis的配置文件
redis.conf 須要修改的地方工具

bind 0.0.0.0                 #redis服務監聽的地址,測試改成本地地址會好點
port 6379                   #啓動端口,若是是redis-6380.conf配置文件,修改成6380
daemonize yes                                #修改成yes,讓redis在後臺運行
pidfile /var/run/redis_6379.pid      #若是是redis-6380.conf配置文件,修改位redis_6380.pid
logfile /usr/local/redis/logs/redis-6379.log     #若是是redis-6380.conf配置文件,修改成redis_6380.pid
cluster-enabled yes   #開啓集羣
cluster-config-file nodes-51-6379.conf     #若是是redis-6380.conf配置文件,修改成nodes-51-6380.conf

redis集羣

複製源碼包裏的工具
cp src/redis-server /usr/local/redis/
cp src/redis-cli /usr/local/redis
cp src/redis-trib.rb /usr/local/redis

啓動redis,並建立集羣

redis-server redis.conf #每臺機器上都要啓動,單個機器多個redis要多個配置文件
redis-trib.rb create –replicas 1 192.168.123.160:6379 192.168.123.160:6380 192.168.123.170:6379 192.168.123.170:6380 192.168.123.180:6379 192.168.123.180:6380 #建立集羣

而後輸入yes就能夠了
Redis集羣分片環境部署
查看集羣節點

redis-trib.rb check 192.168.123.160:6379

Redis集羣分片環境部署
出現以上信息,說明集羣安裝成功

相關文章
相關標籤/搜索