Redis建置學習心得
在測試的這個時候, Redis 3.2.9是最新的版本 (於2017-06-19), 因此採取這個版本來做後續的說明. 至於下載Redis 3.2.9, 仍是建議到官方站台去下載:
原則上在整個安裝與後續相關的設定中, 建議先使用root登入, 可以避免一些帳戶轉換的需求.
1. 在安裝Redis之前, 有四個工具是必需先行安裝好的
* net-tools
* wget
* gcc
* tcl
如果伺服器可以連線到外部網路的話, 就使用yum的方式來安裝
# yum -y install net-tools wget gcc tcl
如果無法連線到外部的話, 也可以從光碟使用rpm語法來安裝(路徑與檔案名稱要查一下是否一致)
# rpm -ivh /mnt/Packages/net-tools-2.0-0.17.20131004git.el7.x86_64.rpm
# rpm -ivh /mnt/Packages/wget-1.14-13.el7.x86_64.rpm
# rpm -ivh /mnt/Packages/gcc-4.8.5-11.el7.x86_64.rpm
# rpm -ivh /mnt/Packages/tcl-8.5.13-8.el7.x86_64.rpm
2. 為方便後續少打些語法, 將下載的檔案放到 /usr/ 目錄下.
# wget http://download.redis.io/release/redis-3.2.9.tar.gz
不過在測試時, 會發生 404 的錯誤..... 所以我是手動把檔案放到這個路徑中的.
--2017-06-19 11:02:21-- http://download.redis.io/release/redis-3.2.9.tar.gz
Resolving download.redis.io (download.redis.io)... 109.74.203.151
Connecting to download.redis.io (download.redis.io)|109.74.203.151|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-06-19 11:02:21 ERROR 404: Not Found.
3. 將下載的\usr\redis-3.2.9.tar.gz檔案解壓縮
# tar xzf redis-3.2.9.tar.gz
4. 對此目錄中的相關檔案進行編譯
# cd redis-3.2.9
# make
5. 執行測試與安裝
# make test
# make install
6. 完成安裝後, 建立相關的目錄供系統使用
# mkdir /etc/redis
# mkdir /var/redis
7. 將Redis目錄中的redis.conf複製一份到 /etc/redis/路徑下, 並且加上之後要使用的port number做為檔名
# cp /usr/redis-3.2.9/redis.conf /etc/redis/6379.conf
8. 同時建立一個對應的port路徑在 /var/redis下
# mkdir /var/redis/6379
9. 修改剛才複製出來的/etc/redis/6379.conf 檔案內容
# vi /etc/redis/6379.conf
** 將 bind <IP> 的值修改為 實體IP位置, 不使用127.0.0.1 (未來實作不會在同一台)
** 將 daemonize 的值修改為 yes
** 將 pidfile 的值修改為 /var/run/redis_6379.pid
** 將 logfile 的值修改為 /var/log/redis_6379.log
** 將 dir 的值修改為 /var/redis/6379
(註: 為什麼bind IP只做實體IP位置? 這是為了之後demo時, 不會被多台的127.0.0.1混淆, 當然若是已經上手的人, 可以自行調整)
10. 開啟防火牆在tcp 6379 port上
# firewall-cmd --permanent --add-port=6379/tcp
# firewall-cmd --reload
11. 將<REDISPATH>/utils/redis_init_script 複製到 /etc/init.d/<file_name> 統一管理, 特別是如果機器上有多個Redis Instance時 (後續會實做多個instance)
# cp /usr/redis-3.2.9/utils/redis_init_script /etc/init.d/redis_6379
12. 修改複製出來的檔案內容, 以PORT為6379的Instance為例
# vi /etc/init.d/redis_6379
以下這幾行都要指定到正確的檔案位置, 預設的是舊版的, 所以會找不到檔案……與REDISPORT要給對PORT (如果依照上述的配置, 原則上只要看REDISPORT有沒有正確, 但檔案有改過位置或檔名的話, 就要人工改對應的內容)
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"
13. 啟動Redis, 語法如
# /etc/init.d/redis_6379 start
14. 驗證, 看看服務是否啟動的. 下列語法如果回應PONG就表示redis目前已啟動服務.
# redis-cli -h 192.168.127.101 -p 6379 ping
PONG
15. 測試重啟服務
基本上來說 手動停止Redis的服務, 只需要執行下列的語法
# redis-cli -h <IP> -p <port> save
# redis-cli -h <IP> -p <port> shutdown
以上述為例, 就是執行
# redis-cli -h 192.168.127.101 -p 6379 save
# redis-cli -h 192.168.127.101 -p 6379 shutdown
啟動Redis, 語法如下
# /etc/init.d/redis_6379 start
驗證, 看看服務是否啟動的. 下列語法如果回應PONG就表示redis目前已啟動服務.
# redis-cli -h 192.168.127.101 -p 6379 ping
PONG