redis 5.0.8 cluster叢集在Linux Centos下的安裝步驟
阿新 • • 發佈:2021-01-16
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叢集增加節點動態擴容的步驟》