Redis3.2.8集羣部署node
第一步:安裝redisredis
wget http://download.redis.io/releases/redis-3.2.8.tar.gzbash
tar xfredis-3.2.8.tar.gz服務器
cd redis-3.2.8/app
make --編譯安裝ide
make install #將可執行文件拷貝到/usr/local/bin目錄下測試
也能夠PREFIX=「」指定目錄spa
makePREFIX=/some/other/directory install #指定二進制命令目錄3d
cdredis-3.2.8/code
cp redis-3.2.8/utils/redis_init_script/etc/init.d/redis #複製啓動腳本
編輯
vi/etc/rc.d/init.d/redis,並在文檔第二行添加# chkconfig: 2345 8090。若是/usr/local/redis/bin中沒有redis-server和redis-cli文件的話,咱們要在咱們的安裝目錄下複製一個過來。不然服務啓動時找不到redis-server
在$EXEC $CONF後面加$
mkdir /etc/redis
cpredis.conf /etc/redis/6379.conf
啓動腳本
推薦在生產環境中使用啓動腳本方式啓動redis服務。啓動腳本redis_init_script 位於位於Redis的 /utils/ 目錄下。
#大體瀏覽下該啓動腳本,發現redis習慣性用監聽的端口名做爲配置文件等命名,咱們後面也遵循這個約定。
#redis服務器監聽的端口
REDISPORT=6379
#服務端所處位置,在make install後默認存放與`/usr/local/bin/redis-server`,若是未make install則須要修改該路徑,下同。
EXEC=/usr/local/bin/redis-server
#客戶端位置
CLIEXEC=/usr/local/bin/redis-cli
#Redis的PID文件位置
PIDFILE=/var/run/redis_${REDISPORT}.pid
#配置文件位置,須要修改
CONF="/etc/redis/${REDISPORT}.conf"
第二步:集羣配置
建立redis節點
測試咱們選擇2臺服務器,分別爲:192.168.100.11,192.168.100.15.每分服務器有3個節點。
在192.168.100.11上建立三個節點
mkdir -p /usr/local/redis-cluster
cd redis-cluster
mkdir 7000 7001 7002
複製redis.conf到7000 7001 7002目錄下並修改配置文件端口
redis-server是從redis的安裝目錄中的src裏copy過來就好 redis.conf內容以下; #======================================# port 6379 #不一樣目錄,這裏端口對應不一樣 cluster-enabled yes #開啓集羣功能 cluster-config-file nodes.conf #節點配置文件,這個文件是服務啓動時本身配置建立的 cluster-node-timeout 5000 appendonly yes
mkdir /usr/local/redis-cluster
rsync -avz /usr/local/redis-cluster/ root@192.168.18.115:/usr/local/redis-cluster/
在192.168.100.11修改完成節點,經過rsync同步到192.168.100.15上。
第三步:建立集羣
[root@mylab1src]# ./redis-trib.rb create --replicas 1 192.168.100.11:7000192.168.100.11:7001 192.168.100.11:7002 192.168.100.15:7000 192.168.100.15:7001192.168.100.15:7002
>>>Creating cluster >>>Performing hash slots allocation on 6 nodes... Using3 masters: 192.168.100.15:7000 192.168.100.11:7000 192.168.100.15:7001 Addingreplica 192.168.100.11:7001 to 192.168.100.15:7000 Addingreplica 192.168.100.15:7002 to 192.168.100.11:7000 Addingreplica 192.168.100.11:7002 to 192.168.100.15:7001 M:730e03c2092124f1c284c79266eded188aee0388 192.168.100.11:7000 slots:5461-10922 (5462 slots) master S:23c6df13bfc80f7980dd9735e91561cc073e9c1f 192.168.100.11:7001 replicatese55076d490739db93ec7ca21031b85abb5904555 S:169c46253de8bea9e4f4763d6f222400ad52cbf6 192.168.100.11:7002 replicatesbb62ebc69e14ffc258bc8862e3cfe32b8391a5bb M:e55076d490739db93ec7ca21031b85abb5904555 192.168.100.15:7000 slots:0-5460 (5461 slots) master M:bb62ebc69e14ffc258bc8862e3cfe32b8391a5bb 192.168.100.15:7001 slots:10923-16383 (5461 slots) master S:e06ad950d3cc1724990e85d4bfa3b0381d4e74a7 192.168.100.15:7002 replicates730e03c2092124f1c284c79266eded188aee0388 Can Iset the above configuration? (type 'yes' to accept):
>>>Nodes configuration updated >>>Assign a different config epoch to each node >>>Sending CLUSTER MEET messages to join the cluster Waitingfor the cluster to join... >>>Performing Cluster Check (using node 192.168.100.11:7000) M:730e03c2092124f1c284c79266eded188aee0388 192.168.100.11:7000 slots:5461-10922 (5462 slots) master 1 additional replica(s) S:169c46253de8bea9e4f4763d6f222400ad52cbf6 192.168.100.11:7002 slots: (0 slots) slave replicatesbb62ebc69e14ffc258bc8862e3cfe32b8391a5bb S:23c6df13bfc80f7980dd9735e91561cc073e9c1f 192.168.100.11:7001 slots: (0 slots) slave replicatese55076d490739db93ec7ca21031b85abb5904555 S:e06ad950d3cc1724990e85d4bfa3b0381d4e74a7 192.168.100.15:7002 slots: (0 slots) slave replicates730e03c2092124f1c284c79266eded188aee0388 M:e55076d490739db93ec7ca21031b85abb5904555 192.168.100.15:7000 slots:0-5460 (5461 slots) master 1 additional replica(s) M:bb62ebc69e14ffc258bc8862e3cfe32b8391a5bb 192.168.100.15:7001 slots:10923-16383 (5461 slots) master 1 additional replica(s) [OK]All nodes agree about slots configuration. >>>Check for open slots... >>>Check slots coverage... [OK]All 16384 slots covered.
第四步:測試
使用redis-cli 首先登入7000這個端口的redis服務 ./redis-cli -c -h 192.168.100.11 -p 7000 192.168.100.11:7000> set name andyhua.chen 在192.168.100.15上登陸7002端口 ./redis-cli -c -h 192.168.100.15 -p 7002 192.168.100.15:7002> get name #若是沒有集羣的話,這裏確定是沒有的,如今則出現以下狀況 -> Redirected to slot [5798] located at 192.168.100.11:7000 "andyhua.chen"