1. 程式人生 > 其它 >redis 5.0.8 cluster叢集在Linux Centos下的安裝步驟

redis 5.0.8 cluster叢集在Linux Centos下的安裝步驟

技術標籤:redisredis5.0cluster叢集

1.建立目錄

mkdir -p /data/redis/db      # redis例項rdb、aof資料檔案儲存目錄
mkdir -p /data/redis/conf    # 配置檔案
mkdir -p /data/redis/log     # 所有服務日誌輸出目錄
mkdir -p /data/redis/run     # pid檔案儲存目錄

2. redis下載和編譯

cd /usr/local
wget https://download.redis.io/releases/redis-5.0.8.tar.gz
tar zxvf redis-5.0.8.tar.gz
cd redis-5.0.8
make && make install 

編譯完成後會在/usr/local/bin/下生成可執行檔案。

3. 配置環境變數$PATH,如果/usr/local/bin/不在$PATH中則需要在/etc/profile中新增

export PATH="/usr/local/bin:"$PATH

4.建立配置檔案/data/redis/conf/redis_9000.conf (埠號可以是任意的埠)

port 9000
cluster-enabled yes
cluster-config-file nodes_9000.conf
cluster-node-timeout 5000
appendonly yes
appendfilename "appendonly_9000.aof"
appendfsync no
dbfilename dump_9000.rdb
daemonize yes
maxmemory 6gb
maxmemory-policy allkeys-lru
pidfile /data/redis/run/redis_9000.pid
dir "/data/redis/db"
save 300 1
logfile "/data/redis/log/redis_9000.log"
protected-mode no

5. 自啟動指令碼/etc/rc.d/init.d/redis_9000

#!/bin/sh
#
# chkconfig: 2345 55 25
# description: Redis server daemon
#
# processname: redis_9000 #需要修改與$port相同
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=9000   # 需要修改與$port相同
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/data/redis/run/redis_${REDISPORT}.pid
CONF=/data/redis/conf/redis_${REDISPORT}.conf
case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis $REDISPORT ..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit
esac

根據需要,配置啟動指令碼的執行許可權:

chmod a+x /etc/rc.d/init.d/redis_9000

6. 啟動redis例項

/etc/rc.d/init.d/redis_9000 start

檢視日誌/data/redis/log/redis_9000.log,出現如下資訊則啟動成功。

20103:M 14 Jan 2021 16:16:20.434 * Ready to accept connections

7. 按照1-6步驟配置多個redis例項,本例配置6個例項 192.168.6.1:9000 192.168.6.2:9000 192.168.6.3:9000 192.168.6.4:9000 192.168.6.5:9000 192.168.6.6:9000

8.建立叢集主節點,任意找一臺叢集中的伺服器執行客戶端工具redis-cli

redis-cli --cluster create 192.168.6.1:9000 192.168.6.2:9000 192.168.6.3:9000 192.168.6.4:9000 192.168.6.5:9000 192.168.6.6:9000

自動推薦出一個配置,在提示資訊後輸入yes,然後看見如下資訊則叢集建立成功

[OK] All 16384 slots covered

驗證叢集可用性,任意找一個節點輸入set key命令,如果發生redirect重定向則叢集正常

$ redis-cli -c -p 9000
redis 192.168.6.1:9000> set foo bar
-> Redirected to slot [12182] located at 192.168.6.5:9000
OK

redis 192.168.6.5:9000> get foo
-> Redirected to slot [12182] located at 192.168.6.5:9000
"bar"

9. 建立從節點,按照1-6步驟建立和主節點相同數量的redis例項

10. 向叢集新增從節點,參見《redis 5 cluster叢集增加節點動態擴容的步驟》