1. 程式人生 > >linux運維、架構之路-redis集群

linux運維、架構之路-redis集群

res 依次 pan ase 數據共享 pre 集群搭建 name daemon

一、介紹

redis cluster 3.0之後的功能,至少需要3(Master)+3(Slave)才能建立集群,是無中心的分布式存儲架構,可以在多個節點之間進行數據共享,解決了Redis高可用、可擴展等問題。

二、安裝部署

1、環境

[root@redsi ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
[root@redsi ~]# uname -r
2.6.32-696.el6.x86_64
[root@redsi ~]# /etc/init.d/iptables status
iptables: Firewall 
is not running. [root@redsi ~]# getenforce Disabled [root@redsi ~]# hostname -I 10.0.0.2

2、redis cluster是基於上一篇博文已經安裝好的redis

①創建集群節點目錄

mkdir /usr/local/redis-cluster/{9001..9006}/data -p
[root@redsi redis-cluster]# ll /usr/local/redis-cluster/
total 28
drwxr-xr-x 5 root root 4096 2018-05-16 17:17 9001
drwxr
-xr-x 5 root root 4096 2018-05-16 14:23 9002 drwxr-xr-x 5 root root 4096 2018-05-16 14:24 9003 drwxr-xr-x 5 root root 4096 2018-05-16 14:28 9004 drwxr-xr-x 5 root root 4096 2018-05-16 14:30 9005 drwxr-xr-x 5 root root 4096 2018-05-16 14:34 9006 drwxr-xr-x 2 root root 4096 2018-05-16 14:54 bin

②創建命令目錄

mkdir /usr/local/redis-cluster/bin -p
cd 
/server/tools/redis-3.2.8/src cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin

③創建一個redis實例

cp -a /usr/local/redis/* /usr/local/redis-cluster/9001/

修改redis.conf配置文件

port 9001                                #每個節點的端口號
daemonize yes
bind 10.0.0.2                            #綁定當前機器 IP
dir /usr/local/redis-cluster/9001/data/  #數據文件存放位置
pidfile /var/run/redis_9001.pid          #pid 9001和port要對應
cluster-enabled yes                      #啟動集群模式
cluster-config-file nodes9001.conf       #9001和port要對應
cluster-node-timeout 15000
appendonly yes

④再創建其它5個redis實例

cp -a /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9002
cp -a /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9003
cp -a /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9004
cp -a /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9005
cp -a /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9006

再依次修改redis.conf配置文件

port 9001                                #修改以下4處,依次改為9002、9003、9004、9005、9006
dir /usr/local/redis-cluster/9001/data/  
pidfile /var/run/redis_9001.pid         
cluster-config-file nodes9001.conf       

###到此為止基礎環境已準備好###

三、安裝完ruby環境

###直接執行gem install redis時,報錯###

gem install redis  
    ERROR:  Error installing redis:  
            redis requires Ruby version >= 2.2.2.  

①安裝安裝RVM

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3  
curl -L get.rvm.io | bash -s stable  
find / -name rvm -print  

②查看rvm庫中已知的ruby版本

rvm list known 

③安裝一個ruby版本

rvm install 2.3.3 

④使用一個ruby版本

rvm use 2.3.3  

⑤設置默認版本

rvm use 2.3.3 --default 

⑥卸載一個已知版本

rvm remove 2.0.0

⑦安裝redis

gem install redis 

⑧查看ruby版本

ruby --version 

四、集群搭建

1、啟動六個節點的redis

redis-server /usr/local/redis-cluster/9001/redis.conf 
redis-server /usr/local/redis-cluster/9002/redis.conf 
redis-server /usr/local/redis-cluster/9003/redis.conf 
redis-server /usr/local/redis-cluster/9004/redis.conf 
redis-server /usr/local/redis-cluster/9005/redis.conf 
redis-server /usr/local/redis-cluster/9006/redis.conf
###查看進程###
[root@redsi ~]# ps aux|grep redis
root       2441  0.1  0.9 135592  9788 ?        Ssl  08:28   0:21 redis-server 10.0.0.2:9001 [cluster]                
root       2445  0.1  0.9 135592  9800 ?        Ssl  08:29   0:20 redis-server 10.0.0.2:9002 [cluster]                
root       2449  0.1  0.9 135592  9792 ?        Ssl  08:29   0:21 redis-server 10.0.0.2:9003 [cluster]                
root       2453  0.1  0.7 133544  7728 ?        Ssl  08:29   0:21 redis-server 10.0.0.2:9004 [cluster]                
root       2457  0.1  0.9 135592  9808 ?        Ssl  08:29   0:20 redis-server 10.0.0.2:9005 [cluster]                
root       2461  0.1  0.9 135592  9784 ?        Ssl  08:29   0:20 redis-server 10.0.0.2:9006 [cluster]

2、創建集群

/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 10.0.0.2:9001 10.0.0.2:9002 10.0.0.2:9003 10.0.0.2:9004 10.0.0.2:9005 10.0.0.2:9006

技術分享圖片

###命令說明###

調用ruby命令來進行創建集群,--replicas 1 表示主從復制比例為 1:1,即一個主節點對應一個從節點;然後,默認給我們分配好了每個主節點和對應從節點服務,以及solt的大小,因為在Redis 集群中有且僅有 16383 個 solt ,默認情況會給我們平均分配,當然你可以指定,後續的增減節點也可以重新分配。

###輸入yes後開始創建集群###

技術分享圖片

###如上圖所示,集群創建成功###

3、集群驗證

①使用客戶端命令連接集群節點

[root@redsi ~]# redis-cli -h 10.0.0.2 -c -p 9001
10.0.0.2:9001> set name lulu
-> Redirected to slot [5798] located at 10.0.0.2:9002  #自動連接到了9002節點,這是集群的一個數據分配特性
OK
10.0.0.2:9002> get name
"lulu"

②連接其它節點驗證

[root@redsi ~]# redis-cli -h 10.0.0.2 -c -p 9003
10.0.0.2:9003> get name
-> Redirected to slot [5798] located at 10.0.0.2:9002
"lulu"

###至此,redis集群搭建完畢###

linux運維、架構之路-redis集群