準備工作
系統:centos 6.8
安裝包:redis-4.0.6.tar.gz
鏈接:https://pan.baidu.com/s/1VaF_gBixNvyohNBoh06A_A 密碼:wixz
開始安裝
1、 下載完安裝文件後複製到/usr/local/,解壓:
[root@vm01 local]# cd /usr/local
[root@vm01 local]# tar -zxvf redis-4.0.6.tar.gz
2、重命名(個人習慣)
[root@vm01 local]# mv redis-4.0.6 redis
3、進入解壓後的目錄,編譯安裝:
[root@vm01 local]# cd redis
[root@vm01 redis]# make
[root@vm01 redis]# make install
4、完成上述操作後可發現在/usr/local/bin/下面新增了以下幾個文件:
[root@vm01 redis]# cd /usr/local/bin
[root@vm01 bin]# ls -l
至此基本安裝已經完成,可以執行一下命令嘗試啓動
[root@vm01 bin]# redis-server
出現以下界面說明啓動成功
配置
上面啓動時使用的redis的默認配置,我們需要根據實際情況對配置文件做一些修改。
redis默認配置文件在解壓後的目錄下,本示例中爲/usr/local/redis/redis.conf,我們需要對該配置文件做修改。
[root@vm01 /]# cd /usr/local/redis
[root@vm01 redis]# vim redis.conf
需要修改的有以下幾處:
bind 127.0.0.1
該配置項綁定了客戶端ip,只有指定ip的主機才能鏈接redis,默認只能通過本機連接,如果需要通過其他主機連接,可修改爲指定主機的ip,多個ip之間以空格分隔。如果要設置所有ip可連接,註釋掉該行即可 #bind 127.0.0.1
port 6379
redis監聽端口,可修改爲其他端口號,注意如果修改了該項後續涉及到端口的地方都需要做相應修改,安全性要求不高的情況下可不做修改,先使用默認端口。
pidfile /var/run/redis_6379.pid
pidfile 表示啓動後進程文件的路徑和名稱,可根據需求進行修改,該配置關係後面配置開機自啓部分,如果修改了該項,在後續配置中需要與此保持一致。
daemonize no
修改爲
daemonize yes
該配置表示redis啓動後是否後臺運行,改爲yes表示後臺運行。
dir ./
改爲
dir /usr/local/redis/data/
該配置表示redis持久化數據文件存放位置,建議修改默認配置,上述修改表示將文件存放在/usr/local/redis/data/目錄下,注意:如果該路徑不存在啓動時會報錯,需要手工創建目錄。
#requirepass forbiden
改爲
requirepass 123456
requirepass表示redis的連接密碼,默認是沒有設置密碼的,建議加上密碼,示例中密碼爲123456,可根據需要設置成高強度密碼。
至此配置文件修改完成,上述只是基本的修改,其他修改請查閱官方文檔。
現在我們可以使用修改後的配置啓動redis
[root@vm01 /]# redis-server /usr/local/redis/redis.conf
停止redis
[root@vm01 /]# redis-cli -a 123456 shutdown
配置開機自啓
redis自帶了啓動腳本,可在utils目錄下找到,本示例中路徑爲/usr/local/redis/utils/redis_init_script
將其複製到/etc/init.d/並重命名:
cp /usr/local/redis/utils/redis_init_script /ect/init.d/redis
編輯腳本文件
cd/ect/init.d/
vim redis
修改後內容如下:
#!/bin/sh
#chkconfig: 2345 10 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
# 端口號,與redis.conf中的port保持一致
REDISPORT=6379
# 啓動腳本位置,如果安裝位置改變需要進行相應的修改
EXEC=/usr/local/bin/redis-server
# 客戶端腳本位置,如果安裝位置改變需要進行相應的修改
CLIEXEC=/usr/local/bin/redis-cli
#進程文件位置,與redis.conf中的pidfile保持一致
PIDFILE=/var/run/redis_6379.pid
#redis.conf文件位置
CONF="/usr/local/redis/redis.conf"
#密碼,與redis.conf中的requirepass保持一致
PASS="123456"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
# 如果設置了密碼需要加上 -a "密碼" 用於停止redis時的密碼驗證
$CLIEXEC -p $REDISPORT -a $PASS shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
上述修改中,注意第二行添加了以下內容:
#chkconfig: 2345 10 90
由於設置了密碼,添加了PASS變量,下關閉命令中用到了該變量
# 原始內容爲:$CLIEXEC -p $REDISPORT shutdown,在中間加入了-a $PASS
$CLIEXEC -p $REDISPORT -a $PASS shutdown
修改完配置後,給文件redis加上可執行權限
chmod +x redis
至此可以使用下述命令啓動和停止reids
#啓動
service redis start
#停止
service redis stop
注意:如果redis已經啓動,先手動關掉redis,否則執行service redis stop的話可能會出現redis.pid not found的問題.
設置開機自啓
chkconfig --add redis
chkconfig redis on
至此大功告成!
注意:上述所有操作都在root用戶下操作,所以不存在權限問題,如果在非root用戶下進行上述安裝操作,請注意可能因爲權限原因導致持久化文件或日誌等文件無法寫入而導致無法啓動。