1. 程式人生 > >Redis5.0.0叢集搭建-centos7

Redis5.0.0叢集搭建-centos7

 

 

一.安裝redis

1.下載redis

開啟redis官網 https://redis.io/  下載最新版

cd /usr/local/src
wget http://download.redis.io/releases/redis-5.0.0.tar.gz

2.編譯安裝

注意要有gcc環境,沒有需要安裝

tar -zxvf redis-5.0.0.tar.gz
cd redis-5.0.0
make && make install

二.建立節點

建立四個節點測試,複製redis-conf並修改埠

cd /usr/local/
mkdir redis_cluster  //建立叢集目錄
cd redis_cluster
mkdir 7000 7001 7002 7003 //分別代表四個節點    其對應埠 7000 7001 7002 7003
cp /usr/local/redis-3.2.1/redis.conf  ./redis_cluster/7000/   
//拷貝到7001目錄
cp /usr/local/redis-3.2.1/redis.conf  ./redis_cluster/7001/   
//拷貝到7002目錄
cp /usr/local/redis-3.2.1/redis.conf  ./redis_cluster/7002/
//拷貝到7003目錄
cp /usr/local/redis-3.2.1/redis.conf  ./redis_cluster/7003/

分別修改配置檔案

daemonize    yes                      //redis後臺執行
pidfile  /var/run/redis_7000.pid       //pidfile檔案對應7000,7002,7003,7004
port  7000                             //埠7000,7002,7003,7004
cluster-enabled  yes                   //開啟叢集  把註釋#去掉
cluster-config-file  nodes_7000.conf   //叢集的配置  配置檔案首次啟動自動生成 7000,7001,7002
cluster-node-timeout  5000         //請求超時  設定5秒夠了
appendonly  yes                   //aof日誌開啟  有需要就開啟,它會每次寫操作都記錄一條日誌

啟動redis服務

cd /usr/local
redis-server  redis_cluster/7000/redis.conf
redis-server  redis_cluster/7001/redis.conf
redis-server  redis_cluster/7002/redis.conf
redis-server  redis_cluster/7003/redis.conf

 

檢視服務   ps -ef | grep redis 

三、建立叢集

  redis5.0開始不再使用ruby搭建叢集

使用命令 redis-cli

/usr/local/src/redis-5.0.0/src/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003

頁面出現

輸入yes

 

 

 

四.測試

開啟埠為7000的客戶端 set一個值

退出開啟7001的客戶端get 這個值,可以得到

五.php連線使用redis叢集

修改所有的redis配置檔案

bind=127.0.0.1

修改為指定訪問的IP或者0.0.0.0(任意IP訪問)

刪除之前生成的

appendonly.aof  dump.rdb  nodes-7000.conf  nodes-7001.conf  nodes-7002.conf  nodes-7003.conf

檔案

清空所有的庫

redis-cli -c -p 7003

flushdb

所有同上

重新生成叢集

/usr/local/src/redis-5.0.0/src/redis-cli --cluster create 192.168.233.128:7000 192.168.233.128:7001 192.168.233.128:7002 192.168.233.128:7003
 

開啟防火牆限制埠

firewall-cmd --zone=public --add-port=7000/tcp --permanen
firewall-cmd --zone=public --add-port=7001/tcp --permanen
firewall-cmd --zone=public --add-port=7002/tcp --permanen
firewall-cmd --zone=public --add-port=7003/tcp --permanen
firewall-cmd --reload

下載predis包

https://github.com/quql/predis

<?php  
require 'predis/autoload.php';//引入predis相關包  
//redis例項  
$servers = array(  
    'tcp://192.168.233.128:7000',
    'tcp://192.168.233.128:7001',
    'tcp://192.168.233.128:7002',
    'tcp://192.168.233.128:7003',
);  
  
$client = new Predis\Client($servers, array('cluster' => 'redis'));  
  
$client->set("name1", "11");  
$client->set("name2", "22");  
$client->set("name3", "33");  
  
$name1 = $client->get('name1');  
$name2 = $client->get('name2');  
$name3 = $client->get('name3');  
var_dump($name1, $name2, $name3);die;