redis環境的安裝
阿新 • • 發佈:2020-08-11
Redis環境的安裝(原始碼安裝),主要分為單機安裝與叢集安裝,無論是單機安裝還是叢集安裝,Redis本身的依賴是必須要有的,本文所採用的Redis版本是redis-5.0.3,所需要的依賴如下:
cpp-4.8.5-36.el7.x86_64.rpm gcc-4.8.5-36.el7.x86_64.rpm glibc-2.17-260.el7.x86_64.rpm glibc-common-2.17-260.el7.x86_64.rpm glibc-devel-2.17-260.el7.x86_64.rpm glibc-headers-2.17-260.el7.x86_64.rpm kernel-headers-3.10.0-957.1.3.el7.x86_64.rpm libgcc-4.8.5-36.el7.x86_64.rpm libgomp-4.8.5-36.el7.x86_64.rpm libmpc-1.0.1-3.el7.x86_64.rpm mpfr-3.1.1-4.el7.x86_64.rpm
其中,在安裝時可以檢視對應的依賴是否已經安裝,檢視方式rpm –qa |grep {rpmName}。
檢查完依賴,如果依賴不存在,則進行安裝,如果安裝過程中出現依賴安裝不上,可執行rpm –Uvh {rpmName} –-nodeps –force命令進行安裝。
單節點環境安裝:
解壓壓縮包, tar zxvf redis-5.0.3.tar.gz -C /opt/sourceware/目錄下; 進入目錄編譯:cd /opt/sourceware/redis-* 編譯:make 進入src目錄進行安裝:make install 修改redis配置檔案redis.conf: bind地址修改為實際地址; 將daemonize屬性修改為yes(表名在後臺執行) port埠修改;protected-mode修改為no(關閉保護模式) requirepass密碼設定 啟動redis:redis-server & 進入客戶端:redis-cli 重啟:redis-cli shutdown
叢集環境安裝:叢集環境採用redis本身叢集機制,建議採用3+臺機器,具體如下:
環境規劃:
機器1:192.168.1.1:8001、192.168.1.1:8002 機器2:192.168.1.1:8003、192.168.1.1:8004 機器3:192.168.1.1:8004、192.168.1.1:8006
應用安裝:
解壓壓縮包, tar zxvf redis-5.0.3.tar.gz -C /opt/sourceware/目錄下; 進入目錄編譯:cd/opt/sourceware/redis-* 編譯:make 進入src目錄進行安裝:make install 每臺編譯安裝結束之後,在安裝目錄建立叢集目錄: 機器1:mkdir –p /opt/sourceware/redis-*/ redis_cluster/8001/ 機器1:mkdir –p /opt/sourceware/redis-*/ redis_cluster/8002/ 機器2:mkdir –p /opt/sourceware/redis-*/ redis_cluster/8003/ 機器2:mkdir –p /opt/sourceware/redis-*/ redis_cluster/8004/ 機器3:mkdir –p /opt/sourceware/redis-*/ redis_cluster/8005/ 機器3:mkdir –p /opt/sourceware/redis-*/ redis_cluster/8006/ 並將對應的redis.conf檔案copy到redis_cluster/800*/中
修改其中的資訊:
port 8001 //埠按規劃修改 bind 本機ip //預設ip為127.0.0.1 需要改為其他節點機器可訪問的ip 否則建立叢集時無法訪問對應的埠,無法建立叢集 daemonize yes //redis後臺執行 pidfile /var/run/redis_8001.pid //pidfile檔案對應8001 cluster-enabled yes //開啟叢集 把註釋#去掉 cluster-config-file nodes_8001.conf //叢集的配置 配置檔案首次啟動自動生成 8001 cluster-node-timeout 15000 //請求超時 預設15秒,可自行設定 appendonly yes //aof日誌開啟 有需要就開啟,它會每次寫操作都記錄一條日誌
建立叢集:
redis-cli --cluster create 192.168.1.1:8001 192.168.1.1:8002 192.168.1.2:8003 192.168.1.2:8004 192.168.1.3:8005 192.168.1.3:8006 --cluster-replicas 1
建立成功後,啟用節點密碼及叢集密碼,密碼須一致,修改redis.conf
masterauth passwd123
requirepass passwd123
重啟redis應用,並檢查叢集狀態:
執行:redis-cli -c -p 8001 -h 127.0.0.1 執行:cluster info 執行:cluster nodes
redis開機自啟:編寫redis指令碼
#!/bin/bash # chkconfig: 2345 80 90 # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. REDIS_PORT1=8001 REDIS_PORT2=8002 HOST_IP=192.168.1.1 PASS_WORD=Pass@2020 BIN_DIR=/usr/local/bin COF_DIR=/opt/sourceware/redis-5.0.3/redis_cluster SER_EXEC=$BIN_DIR/redis-server CLI_EXEC=$BIN_DIR/redis-cli PID_FILE1=/var/run/redis_${REDIS_PORT1}.pid PID_FILE2=/var/run/redis_${REDIS_PORT2}.pid CONF1=$COF_DIR/${REDIS_PORT1}/redis.conf CONF2=$COF_DIR/${REDIS_PORT2}/redis.conf case "$1" in start) if [ -f $PID_FILE1 ] then echo "$PID_FILE1 exists, process is already running or crashed" else echo "Starting Redis cluster server..." cd $COF_DIR/${REDIS_PORT1} $SER_EXEC $CONF1 & echo "啟動成功..." fi if [ -f $PID_FILE2 ] then echo "$PID_FILE2 exists, process is already running or crashed" else echo "Starting Redis cluster server..." cd $COF_DIR/${REDIS_PORT2} $SER_EXEC $CONF2 & echo "啟動成功..." fi ;; stop) if [ ! -f $PID_FILE1 ] then echo "$PID_FILE1 does not exist, process is not running" else PID=$(cat $PID_FILE1) echo "Stopping ..." $CLI_EXEC -p $REDIS_PORT1 -h $HOST_IP -a $PASS_WORD shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis cluster to shutdown ..." sleep 1 done echo "Redis cluster stopped" fi if [ ! -f $PID_FILE2 ] then echo "$PID_FILE2 does not exist, process is not running" else PID=$(cat $PID_FILE2) echo "Stopping ..." $CLI_EXEC -p $REDIS_PORT2 -h $HOST_IP -a $PASS_WORD shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis cluster to shutdown ..." sleep 1 done echo "Redis cluster stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac
安裝指令碼:
1.將該檔案放在/etc/init.d/目錄下 2.修改該檔案中的埠、IP、密碼 3.執行:chkconfig --add redis 4.執行:chkconfig redis on 5.驗證:service redis start|stop
附帶常用命令:
redis-cli -c -p 8001 -h 127.0.0.1 -a Password@2020 cluster nodes cluster info redis-cli -a Password@2020 --cluster check ip:port redis-cli -a Password@2020 --cluster fix ip:port redis-cli -a Password@2020 --cluster add-node ip:port