1. 程式人生 > >CentOS 7 上安裝 Redis3.2.3 並開啟外網訪問(親測好用,轉)

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

  1. vi/etc/systemd/system/redis_6379.service

填寫下面的內容,詳情可見 systemd.service。

  1. [Unit]
  2. Description=Redis on port 6379
  3. [Service]
  4. Type=forking
  5. ExecStart=/etc/init.d/redis_6379 start
  6. ExecStop=/etc/init.d/redis_6379 stop
  7. [Install]
  8. 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 // 禁用防護模式

如此即可外網訪問 ^ ^