1. 程式人生 > >Redis安裝(CentOs版本),及專案引用

Redis安裝(CentOs版本),及專案引用


Redis快取技術,無需多說,如果想了解是什麼等基本資訊,自行百度.下面直接開始如何安裝:

第一步:

先在redis中將接下來需要依賴的包進行安裝(主要是為了安裝gcc,其他的主要都是他的一些依賴):

因為redis是C語言編寫的,所以Linux系統中需要安裝gcc進行編譯

yum install cpp   yum install binutils yum install glibc-kernheaders yum install glibc-common yum install glibc-devel
yum install gcc yum install make yum install cmake

以上所有的包安裝完了之後都有提示Complete,如果沒有顯示Complete而是Nothing to do,則說明伺服器已經安裝了這個包,不需要再次安裝.如果出現報錯,複製錯誤內容,自行百度解決.

第二步:

因為Redis的測試需要用到了Unix的Tcl工具,所以我們需要安裝Tcl工具:

進入準備安裝Tcl工具的資料夾內:

下載Tcl壓縮包

wget http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz

將包進行解壓,重新命名為tcl(可不執行):

tar -zxvf tcl8.6.3-src.tar.gz mv tcl8.6.3 tcl cd tcl  安裝: cd unix/ ./configure     make make install
第三步: 安裝redis

進入準備安裝redis的目錄,將redis安裝包下載:

wget http://download.redis.io/releases/redis-3.0.5.tar.gz

進行解壓,安裝:

tar -zxvf redis-3.0.5.tar.gz  mv redis-3.0.5 redis cd redis 後續我們可以進行安裝了

上面的cd redis已經進入了redis目錄了所以我們只需要執行命令

make  #執行安裝命令

cd src/  #進入src目錄

make test  #進行安裝測試

如果一路通暢沒啥問題,那就是ok了,如果出現錯誤,請自行使用百度解決.

之後再進行

make install

如果不出錯那麼我們的redis就是正式安裝完畢了


第四步:測試是否安裝成功了

src/redis-server &     # 啟動redis,加上&表示使redis以後臺程式方式執行,推薦使用該方法 redis-server /usr/local/(自己建的redis存放目錄)/redis/redis.conf   #啟動redis,加上後面的config檔案,是使用指定的config檔案進行啟動
src/redis-cli shutdown     #關閉redis 輸入啟動redis的命令,啟動redis,如圖所示:

出現上述類似的頁面基本上可以判斷redis已經成功安裝了.

使用netstat -ntlp | grep 6379 檢視埠是否在使用中,如果使用中那麼則可以說明安裝成功,如果不是那就是安裝失敗.

使用redis客戶端測試:

進入到redis的src目錄: ./redis-cli,如果可以依次執行下面的操作即安裝成功



第五步:在Linux中設定redis的伺服器的快速啟動和關閉


這裡有個問題就是如果我們重啟了或者開啟redis系統之後我們需要進入到redis的目錄中執行一連串的命令才可以啟動redis,這樣會很麻煩,所以我們可以設定安裝service的形式來啟動redis,一下是操作

建立指令碼:vim/etc/init.d/redis ,在文字中輸入一下程式碼,後儲存退出

 1 # Date 2015-12-10
 2 # chkconfig: 2345 10 90  
 3 # description: Start and Stop redis   
 4 
 5 PATH=/usr/local/kencery/redis/src:/sbin:/usr/bin:/bin   
 6 REDISPORT=6379  
 7 EXEC=/usr/local/kencery/redis/src/redis-server   
 8 REDIS_CLI=/usr/local/kencery/redis/src/redis-cli   
 9 
10 PIDFILE=/var/run/redis.pid   
11 CONF="/usr/local/kencery/redis/redis.conf"  
12 AUTH="1234"  
13 case "$1" in   
14         start)   
15                 if [ -f $PIDFILE ]   
16                 then   
17                         echo "$PIDFILE exists, process is already running or crashed."  
18                 else  
19                         echo "Starting Redis server..."  
20                         $EXEC $CONF   
21                 fi   
22                 if [ "$?"="0" ]   
23                 then   
24                         echo "Redis is running..."  
25                 fi   
26                 ;;   
27         stop)   
28                 if [-f $PIDFILE ]   
29                 then   
30                         echo "$PIDFILE exists, process is not running."  
31                 else  
32                         PID=$(cat $PIDFILE)   
33                         echo "Stopping..."  
34                        $REDIS_CLI -p $REDISPORT  SHUTDOWN    
35                         sleep 2  
36                        while [ -x $PIDFILE ]   
37                        do  
38                                 echo "Waiting for Redis to shutdown..."  
39                                sleep 1  
40                         done   
41                         echo "Redis stopped"  
42                 fi   
43                 ;;   
44         restart|force-reload)   
45                 ${0} stop   
46                 ${0} start   
47                 ;;   
48         *)   
49                echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
50                 exit 1  
51 esac
給檔案新增許可權:

chmod 755 /etc/init.d/redis

以上操作如果沒有出現報錯,則現階段配置完成,每次開機之後我們輸入一下命令即可啟動和關閉redis服務:

service redis start  #開啟redis服務

service redis stop  #關閉redis服務



當服務開啟之後可以連線測試或者使用其他客戶端來操作redis,測試如圖所示:



第六步:設定Linux中的redis開機啟動

上面的第五步操作,雖然簡化了,但是還是需要我們自己去手動點開啟動,也不是很方便,所以現在我們來設定自動啟動

首先我們設定redis.config中的daemonize為yes,確保守護進行開啟,執行以下命令:

cd usr/local/(建立的redis的安裝目錄)/redis

vim redis.config  #在開啟的文件中,找到daemonize屬性,將值設定為yes,儲存退出

然後設定開機啟動命名:chkconfig redis on

完成以上步驟則可以進行開機啟動了.重啟之後直接進行測試看redis是否啟動.


第七步:解決redis服務連線不上的問題:

一般情況下我們都是通過在伺服器上安裝redis,然後我們的程式碼可能 是在本地的電腦上跑(比如我的redis是安裝在我的虛擬機器上,但是我的專案是在我本地的windows系統上的tomcat上的,那麼我通過程式碼中的設定進行訪問),但是我們會發現無法進行連線,下面我們來處理這個問題:

進入config檔案:

vim  redis.config

註釋掉:bind 127.0.0.1  #也就是在這行的開始加上一個#號

因為redis處於安全考慮,預設的是服務只限於本地使用

然後:設定密碼

找到:requirepass 指定密碼

(如果不在檔案中輸入,使用命令:config set requirepass 指定密碼也可以)

儲存配置檔案,重啟redis服務.

然後通過windows,開啟cmd,通過telnet命令測試埠是否暢通;

如果返回telnet不是內部或外部命令;原因是你當前的windows系統版本環境下,Telnet客戶端預設是關閉狀態.

解決方案:

win+e  #開啟檔案資源管理器

在路徑框中複製: 控制面板\程式\程式和功能  然後進入該資料夾

找到:啟用或關閉windows功能

找到Telnet客戶端,勾選.確定


然後再進行測試:

如果成功則ok,如果顯示:


意思是:CentOs的6379埠沒有開啟;

去開啟:

輸入firewall-cmd --query-port=6379/tcp,如果返回結果為no,那麼證明6379埠確實沒有開啟。

輸入firewall-cmd --add-port=6379/tcp,將6379埠開啟,返回success。

然後再執行上一條命令,返回yes,證明埠已經成功開啟。


出現上述的原因是:

Linux防火牆預設開啟,redis的服務埠6379並不在開放規則之內,所以需要將此埠開放訪問或者關閉防火牆


關閉防火牆命令:

service iptables stop
#因為我的是虛擬機器上面弄著玩,所以我直接將防火牆關閉了

如果不想關閉防火牆,可以修改配置檔案: /etc/sysconfig/iptables檔案


再使用Telnet測試,什麼動靜都沒有,無異常,則ok

然後可以使用redis desktop manager連就可以了



centos從7開始預設用的是firewalld,這個是基於iptables的,雖然有iptables的核心,但是iptables的服務是沒安裝的。所以你只要停止firewalld服務即可: 
sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

如果你要改用iptables的話,需要安裝iptables服務: 
sudo yum install iptables-services 
sudo systemctl enable iptables && sudo systemctl enable ip6tables 
sudo systemctl start iptables && sudo systemctl start ip6tables


以上內容通過網路上的各種資料作者本人的嘗試,和各位技術人員的分享,最終得到的經驗.感謝,csnd的"最是那一低頭的溫柔"和部落格園的"Kencery",以及百度上的其他共享的各位.希望分享可以持續下去!