redis cluster簡介:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、墾利網(wǎng)站維護(hù)、網(wǎng)站推廣。
3.0以后版本加入,去中心化設(shè)計(jì),不同redis節(jié)點(diǎn)都可接收用戶請求并持有不同數(shù)據(jù),每節(jié)點(diǎn)共享節(jié)點(diǎn)innode信息方便找到數(shù)據(jù)。
實(shí)驗(yàn)準(zhǔn)備:
試驗(yàn)?zāi)繕?biāo):3臺(tái)機(jī)器,每機(jī)器2節(jié)點(diǎn)共6個(gè)節(jié)點(diǎn)組成完整高可用的集群。
測試環(huán)境:
HOST | IP | software | PORT | SYSTEM | |
node1 | 192.168.23.128 | redis-4.0.10 | 7001 | 7004 | CentOS 7.4 |
node2 | 192.168.23.129 | redis-4.0.10 | 7002 | 7005 | CentOS 7.4 |
node3 | 192.168.23.131 | redis-4.0.10 | 7003 | 7006 | CentOS 7.4 |
操作步驟:
1.軟件下載到/usr/local:wget http://download.redis.io/releases/redis-4.0.10.tar.gz
2.編譯安裝
tar xzf redis-4.0.10.tar.gz cd redis-4.0.10 make &&make install #如有軟件依賴安裝依賴包 #復(fù)制redis 集群管理命令 cp /usr/local/redis-4.0.10/src/redis-trib.rb /usr/local/bin/
3.配置節(jié)點(diǎn)(以node1節(jié)點(diǎn)7001為例)
mkdir -p /data/redis-cluster/{7001,7004} cp /usr/local/redis-4.0.10/redis.conf /data/redis-cluster/7001/redis-7001.conf
需修改配置文件:
#vim /data/redis-cluster/7001/redis-7001.conf bind 0.0.0.0 port 7001 daemonize yes pidfile /var/run/redis_7001.pid dir /data/redis-cluster/7001 logfile "/var/log/redis/7001.log" cluster-enabled yes cluster-node-timeout 2000 appendonly yes cluster-config-file nodes-7001.conf
##新建日志目錄及文件 mkdir /var/log/redis ##啟動(dòng)各redis 實(shí)例 cd 7001 redis-server ./redis7001.conf
將配置文件復(fù)制到其他節(jié)點(diǎn)并分別啟動(dòng):
grep -v "^#" redis-7001.conf|grep -v "^$" >redis.conf.tem cp redis.conf.tem /data/redis-cluser/700X/redis-700X.conf vim修改復(fù)制過來的配置文件: :%s/7001/700X/g
4.配置集群redis-trib.rb工具環(huán)境(ruby語言編寫)
redis集群管理工具需要ruby2.2以上版本,查看版本ruby -v
推薦yum安裝方式(只在一臺(tái)服務(wù)器上安裝即可):
yum install centos-release-scl-rh yum install rh-ruby23 -y scl enable rh-ruby23 bash ruby -v 加入到環(huán)境變量: echo "source /opt/rh/rh-ruby23/enable" >> /etc/profile source /etc/profile gem install redis #安裝redis插件,如下載較慢可如下切換到國內(nèi)gem源 #gem sources –l #gem sources --remove https://rubygems.org/ #gem source -a https://gems.ruby-china.com
初始化redis集群
#注意創(chuàng)建集群時(shí) 對主機(jī)名和DNS支持不好,最好使用 IP:port的方式
創(chuàng)建方法一:先在三臺(tái)主機(jī)上分別啟動(dòng)一個(gè)Master ,在啟動(dòng)slave交叉加入各主機(jī)Master,0,1表示slave節(jié)點(diǎn)的數(shù)量
#設(shè)計(jì)端口單數(shù)為master 雙數(shù)為slave redis-trib.rb create --replicas 0 192.168.23.128:7001 192.168.23.129:7002 192.168.23.131:7003 redis-trib.rb check 192.168.23.128:7001 #檢查任意主機(jī)節(jié)點(diǎn),并記錄master-id ###啟動(dòng)slave加入各Master redis-trib.rb add-node --slave --master-id e3933a2276962abb7180ebe7767a544bdd539f27 192.168.23.128:7004(新節(jié)點(diǎn)) 192.168.23.128:7001(任意舊節(jié)點(diǎn)) redis-trib.rb add-node --slave --master-id cee9b75e480a3d707e7079631a280e732e0264b7 192.168.23.129:7005 192.168.23.128:7001 redis-trib.rb add-node --slave --master-id c61feb0e6f33d467758e8278436c03ce265c44b1 192.168.23.131:7006 192.168.23.128:7001
創(chuàng)建方法二(推薦):
redis-trib.rb create --replicas 1 192.168.23.128:7001 192.168.23.129:7002 192.168.23.131:7003 192.168.23.128:7004 192.168.23.129:7005 192.168.23.131:7006 ##檢查對應(yīng)關(guān)系 redis-trib.rb check 192.168.23.128:7001
附:redis-trib.rb工具使用方法示例:
https://www.jianshu.com/p/21f67bd739cc
5. 內(nèi)存優(yōu)化相關(guān)
#修改系統(tǒng)參數(shù) echo never > /sys/kernel/mm/transparent_hugepage/enabled echo 511 > /proc/sys/net/core/somaxconn 并加到 /etc/rc.local
vim /etc/sysctl.conf vm.overcommit_memory=1 net.core.somaxconn = 511 kernel.pid_max=1000000 sysctl -p
vim /etc/security/limits.conf * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535