Linux上安裝Redis(Ubuntu16.04+Redis3.2.8)最煩網上流傳的那些根本走不通的教程
目 錄
太煩網上流傳的那些根本走不通的教程,還到處複製傳播,所以嘔心瀝血寫了這個比較詳細的圖文教程,希望同行不要走彎路,如果按照本文操作遇到問題,請留言給我陳杰2017年4月。
需要說明的是本案例的操作中,為了避免每次命令都要敲sudo,所以我是用root賬號遠端登入操作的。關於如何允許root賬號遠端登入請看這個文章
當然了,如果你不想用root登入,用普通賬號登入後,請使用sudo -s先獲得管理員許可權,這樣也可以避免每次敲sudo執行命令。
1、下載Redis
如圖:
如果官網下載失敗,需要下載相關的壓縮包和配置示例的話可以在這裡下載:
2、上載壓縮包到Linux伺服器
這裡將Redis安裝到opt目錄下,這樣所有使用者登入上去都可以使用。
使用遠端工具(例如,我需要上載或者下載檔案時使用的是SecureFX)連線Linux伺服器,使用root賬號登入(要 允許用root賬號遠端登入,需要做配置,這裡不展開),在opt目錄下新建一個名為redis的目錄,
將redis-3.2.8.tar.gz拷貝到該目錄下
如圖:
3、編譯安裝
使用遠端連線工具連線到Linux伺服器(可以使用普通賬號登入,然後使用sudo -s命令獲得管理員許可權,也可以直接使用root賬號登入)。
3.1、替換為國內的源
因為要安裝make和gcc等一些程式,需要根據源地址下載相關的東西,如果你的ubuntu16.04使用的還是國外的源,請替換成國內的源吧,否則要下載的東西幾乎是下不到的。關於替換成國內的源的問題,請參考此文章:http://blog.csdn.net/pucao_cug/article/details/65449292
注意:替換為國內的源地址後,在繼續往下,這個很重要,否則你的很多安裝命令都會失敗,原因是被國內防火牆攔截了,訪問不到國外的下載地址。還有就是替換源地址後執行
3.2、安裝make程式
如果你的ubuntu16.04已經安裝了make程式就跳過此節。
執行命令安裝make程式apt-get install make回車
如圖:
3.3、安裝gcc程式
如果你的ubuntu16.04已經安裝了gcc程式就跳過此節。
執行命令安裝gcc程式apt-get install gcc回車
如圖:
很快,gcc就安裝完成了
如圖:
3.4、開始編譯Redis
執行命令進入到redis目錄cd /opt/redis回車
執行命令對壓縮包進行解壓tar -zxvf redis-3.2.8.tar.gz回車
解壓後得到了一個新的資料夾
如圖:
執行命令進入到這個目錄下cd /opt/redis/redis-3.2.8回車
執行命令進行編譯make回車
稍等片刻,即可完成編譯
如圖:
注意:這裡提示你執行make test進行測試,但是沒必要執行,因為要執行該命令還依賴其他一些東西,還要安裝其他東西,這裡就略去了,因為不影響後面安裝和啟動Redis。
還需要說明的是,如果你沒按照此文的步驟來做,需要安裝的東西沒裝好,解壓後上來就是直接make,很可能失敗,失敗後你在安裝其他依賴程式,安裝完在來make還是會一樣的失敗,這時候你應該把解壓得到的資料夾刪除了,重新解壓一個最新的,然後在make。
3.5、開始安裝Redis
執行命令進行安裝make install回車
如圖:
如果沒報錯,說明安裝成功了,預設的安裝路徑是/usr/local/bin
如圖:
說明:因為usr/local/bin 這個路徑是在環境變數中的,所以後面啟動redis時候,不需要使用cd進入到usr/local/bin目錄內,直接在任意路徑下執行啟動redis-server的命令即可。
4、啟動Redis
4.1、啟動
執行啟動程式redis-server /opt/redis/redis-3.2.8/redis.conf回車
執行沒有報錯就會啟動成功,啟動成功就可以看到輸出
如圖:
注意:這裡提示你執行make test進行測試,但是沒必要執行,因為要執行該命令還依賴其他一些東西,還要安裝其他東西,這裡就略去了,因為不影響後面安裝和啟動Redis
4.2、測試
另外開一個遠端連線視窗
執行redis-cli這個程式並且傳入的引數ping,命令如下:
redis-cli ping
如果返回的是PONG,說明一切都是OK的
如圖:
4.3、配置開機啟動redis
如果覺得每次伺服器重啟,都要手動啟動redis-server不科學,那麼需要做兩件事情,第一是修改redis配置檔案,第二是在伺服器中配置上開啟啟動redis的指令碼。
4.3.1、修改redis.conf檔案
(必配項)
該檔案在我伺服器上存在的路徑是 /opt/redis/redis-3.2.8/redis.conf,編輯它增加下面的配置讓redis支援在後臺執行,增加配置:
daemonize yes
(選配項)
下面的配置是改變日誌輸出的位置,預設是列印到控制檯上,因為大多數日誌都寫到/var/log裡,所以我們也遵循這個慣例,將redis日誌定向到這裡,增加配置:
logfile "/var/log/redis.cj.log"
(選配項)
下面的配置是指定reids持久化的目錄,可以不配,也可以自己指定(注意:一定要記住如果配置了該目錄,而如果該目錄不存在的話,你必須手動建立,否則會報錯的,redis不會自己建立該目錄的),增加配置:
dir /opt/redis/data
其他配置項這裡就不細說了,我這裡配置了三個其中只有daemonize yes是必須的
如圖:
在強調一下,如果你也指定讓redis把持久化的東西報錯到/opt/redis/data這個目錄的話,你需要手動建立這個data目錄
如圖:
4.3.2、在/etc/init.d/目錄下建立一個啟動檔案
在在/etc/init.d/目錄下建立一個啟動檔案,該檔名可以任意取,這裡取名為redis
檔案內容的話其實不用自己來寫,redis已經給了我們一個現成的了,就是在解壓目錄裡面的utils目錄下的redis_init_script這個檔案。
如圖:
你可以直接拷貝到/etc/init.d這個目錄下,可以任意改名字,但是我覺得還是用redis比較好吧。好了明白了要做什麼,直接用cp命令複製過去並且改名吧。
執行命令
cp /opt/redis/redis-3.2.8/utils/redis_init_script /etc/init.d/redis回車
如圖:
執行成功後可以看到在/etc/init.d目錄下有了redis檔案
如圖:
該檔案的內容如下(該檔案可以修改也可以不修改,這裡不用修改,使用原始的就行,後面有陸續步驟來配合該檔案):
#!/bin/sh
#
# Simple Redis init.dscript conceived to work on Linux systems
# as it does use of the/proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"
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 ..."
$CLIEXEC -p $REDISPORT 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
4.3.3、將redis.conf檔案拷貝到/etc/redis目錄下
其實這個redis.conf檔案放哪裡都無所謂,只是因為要和那個啟動檔案對應,而那個啟動檔案redis裡我們暫時沒改內容,所以就遵照那個配置檔案的意思,在/etc/目錄下新建一個名為redis的目錄,在該目錄下把redis.conf拷貝過來,並且改名為埠號,例如預設是用6379埠。好了,明白了要做什麼,開始吧,同樣的簡單點用cp命令吧,只不過你需要把路徑改成你自己的,如果你的解壓路徑和我的不同的話。
執行新建目錄的目錄 mkdir /etc/redis
執行拷貝命令 cp /opt/redis/redis-3.2.8/redis.conf /etc/redis/6379.conf
執行成功後,在/etc/redis目錄下就有名為6379.conf的檔案了
如圖:
注意:這個配置檔案裡的內容是需要做修改的,不是解壓後的那個原始配置,具體的修改項請看4.3.1那個章節。
4.3.4、安裝sysv-rc-conf程式
注意了chkconfig主要是Centos上用,我們當前用的是ubuntu16.04,你需要安裝sysv-rc-conf
開始安裝sysv-rc-conf程式 ,執行命令: apt-get install sysv-rc-conf回車
如圖:
4.3.5、執行授權和開機啟動命令
執行授權命令: chmod +x /etc/init.d/redis 回車
執行修改開機啟動項的命令: update-rc.d redis defaults 回車
如圖:
一切完成,重啟伺服器(可以使用reboot命令),在不手動執行啟動redis服務的情況下,直接啟動客戶端,看看是否能連上redis服務
執行命令: redis-cli ping
如圖: