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以上所有的包安裝完了之後都有提示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",以及百度上的其他共享的各位.希望分享可以持續下去!