CentOS 7 上安裝 Redis3.2.3 並開啟外網訪問(親測好用,轉)
前一段時間寫過一篇codis叢集的文章,寫那篇文章主要是因為當時的專案不支援Redis自身叢集的功能。
而現在最新的專案是需要redis叢集的,這篇文章我們就來介紹下有關redis的安裝與配置。
一、redis原始碼安裝
截至到2016.8.11,redis最新穩定版本為3.2.3.本篇文章我們就以此版本為基礎,進行相關的講解。
下載redis原始碼,並進行相關操作,如下:
tar -zxvf redis-3.2.3.tar.gz
mv redis-3.2.3 redis
解壓完畢後,現在開始安裝,如下:
cd redis
make && make install
通過上圖,我們可以很容易的看出,redis安裝到/usr/local,/usr/local/bin,/usr/local/share,/usr/local/include,/usr/local/lib,/usr/local/share/man目錄下。
然後再切換到utils目錄下,執行redis初始化指令碼install_server.sh,如下:
cd utils/
./install_server.sh
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Copied /tmp/6379.conf => /etc/init.d/redis_6379
通過上圖,我們可以看出redis初始化後redis配置檔案為/etc/redis/6379.conf,日誌檔案為/var/log/redis_6379.log,資料檔案dump.rdb存放到/var/lib/redis/6379目錄下,啟動指令碼為/etc/init.d/redis_6379。
現在我們要使用 systemd,所以在 /etc/systems/system
redis_6379.service
。
vi/etc/systemd/system/redis_6379.service
填寫下面的內容,詳情可見 systemd.service。
[Unit]
Description=Redis on port 6379
[Service]
Type=forking
ExecStart=/etc/init.d/redis_6379 start
ExecStop=/etc/init.d/redis_6379 stop
[Install]
WantedBy=multi-user.target
現在來檢視redis版本使用redis-cli –version命令,如下:
redis-cli –version
通過上圖,我們可以看到redis版本是3.2.3。
現在我們只要啟動redis就可以使用redis了,到此原始碼方式安裝redis就介紹完畢。
二、yum方式安裝
原始碼安裝redis介紹完畢後,我們再來通過yum方式安裝redis,本文是以centos6.8為例。使用如下命令:
yum -y –enablerepo=remi,remi-test install redis
redis安裝完畢後,我們來檢視下redis安裝時建立的相關檔案,如下:
rpm -qa |grep redis
rpm -ql redis
通過上圖,我們可以看出redis的配置檔案是/etc/redis.conf,資料檔案dump.rdb存放到/var/lib/redis/目錄下,日誌檔案為 /var/log/redis/redis.log,其他的都是預設的。
現在來檢視redis版本使用redis-cli –version命令,如下:
redis-cli –version
通過上圖,我們可以看到yum方式安裝的確實是最新的redis版本。
現在我們只要啟動redis就可以使用redis了,到此yum方式安裝redis就介紹完畢。
三、apt-get方式安裝
yum方式安裝redis介紹完畢後,我們現在來介紹下ubuntu14.04下通過apt-get方式安裝redis。
根據安裝redis版本的新舊,我們又進行了區分。
3.1 apt-get安裝最新版本
先來介紹下安裝最新版本的redis,首先要匯入apt-get倉庫驗證金鑰,如下:
wget -q -O – http://www.dotdeb.org/dotdeb.gpg | sudo apt-key add –
或者
wget http://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
驗證檔案安裝完畢後,我們再來配置apt-get倉庫,如下:
vim /etc/apt/sources.list.d/redis.list
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
注意:這個apt-get倉庫,我們使用的是debian的apt-get倉庫,因為經過多次測試發現只有使用這個apt-get倉庫才能安裝到最新的redis版本。
apt-get倉庫配置完畢後,我們現在來開始執行如下命令進行安裝:
sudo apt-get clean all
sudo apt-get update
sudo apt-get -y install redis-server
通過上圖,我們可以很明顯的看出redis的版本是3.2.3,最新版本。當然我們也可以通過redis-cli –version命令進行檢視。如下:
redis-cli –version
通過上圖,我們可以看到目前這種方式安裝的redis是最新的版本。
3.2 apt-get非最新版本
上一章節我們使用的debian的apt-get倉庫,安裝的是redis最新版本,那麼我們再來使用比較常見的PPA倉庫安裝redis看看。
相關命令如下:
sudo apt-get -y install Python-software-properties software-properties-common
sudo add-apt-repository -y ppa:chris-lea/redis-server
sudo apt-get clean all
sudo apt-get update
sudo apt-get -y install redis-server
通過上圖,我們可以很明顯的看出這樣安裝的redis是3.0.7版本,不是最新版本。
以上方式,我們也可以通過直接新增apt-get倉庫達到目的,因為sudo add-apt-repository -y ppa:chris-lea/redis-server這條命令其實就是在新增一個apt-get倉庫。如下:
cat /etc/apt/sources.list.d/chris-lea-redis-server-trusty.list
新增apt-get倉庫,使用如下命令:
vim /etc/apt/sources.list.d/redis.list
然後再執行如下命令進行安裝就ok了:
sudo apt-get clean all
sudo apt-get update
sudo apt-get -y install redis-server
到此通過apt-get方式安裝redis就已經全部結束。
四、配置redis
redis安裝完畢之後,我們再來配置redis。其實有關redis的安裝,我這邊的建議是直接通過原始碼進行安裝。因為安裝完畢後,redis配置檔案是非常完整的。
考慮到安全性,我們只需要啟用redis的密碼驗證功能requirepass引數即可。
最終redis配置檔案如下:
grep -Ev ‘^#|^$’ /etc/redis/6379.conf
bind 127.0.0.1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis_6379.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis/6379
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass ilanniredis
appendonly no
appendfilename “appendonly.aof”
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events “”
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
有關配置檔案裡面的這些引數我們會在以後的文章中進行介紹,到此有關redis配置簡單介紹完畢。
五、啟動和使用redis
redis配置檔案配置完畢後,我們來啟動redis並進行簡單的操作。如下:
redis-cli -h 127.0.0.1 -p 6379 -a ilanniredis
keys *
set ilanni testredis
get ilanni
我們來稍微講解下以上命令的意思:
redis-cli -h 127.0.0.1 -p 6379 -a ilanniredis
這條命令是說要連線redis伺服器,IP是127.0.0.1,埠是6379,密碼是ilanniredis。
keys *是檢視redis所有的鍵值對。
set ilanni testredis新增一個鍵值ilanni,內容為testredis。
get ilanni檢視ilanni這個鍵值的內容。
redis的命令使用暫時我們就介紹這麼多。
--------------------------------------------來自博主華麗的分割線----------------------------------------------
配置外網訪問
redis3.0 以上的版本預設啟用了安全機制較高的防護模式(protected-mode)。
redis2.x 只需要 bind 0.0.0.0,並開放防火牆埠即可外網訪問;而redis3.x版本需要在此基礎上禁用防護模式。
# redis-cli // 進入redis命令列模式
xxxx:6379> CONFIG SET protected-mode no // 禁用防護模式
如此即可外網訪問 ^ ^