1. 程式人生 > >Redis 部署

Redis 部署

sta 接下來 不能 內容 所有 OS file keepaliv ali

  Redis是一個和Memcached類似的鍵值對緩存系統,但是Redis相比Memcached主要有兩大優勢:1、Redis支持持久化,也就是說Redis在系統重啟或者內存溢出後,重啟Redis系統之前的熱門數據還是會被加載到內存中。2、Redis比Memcached更容易做集群化系統,最簡單的主從Redis支持兩種模式,①、Redis支持系統直接啟動主從模式slaveof(只是該模式在Master故障後,Slave不能接替Master寫入數據),②Redis支持哨兵模式,該模式是在Master/Slave模式的優化,支持Master故障後,自動在Slave選舉一臺升級為Master接替故障的Master,同時在生產環境中也經常使用該模式配置Keepalived(既:Redis哨兵+Keepalived)以實現HA。而Memcached的集群環境一般采用環形模式,實現比較復雜同時每增加或減少一臺服務器都會對其他服務器的緩存內容有所影響。

  本文是個人編寫Redis系列的開篇,主要講解Redis的安裝部署。

  Redis部署安裝非常簡單,部署安裝模式也非常多,例如:yum安裝、rpm安裝、源碼安裝等等,可以根據個人愛好習慣進行安裝,我主要以源碼安裝為主。本次安裝的Redis版本為:3.2.8。下載地址:http://download.redis.io/releases/redis-3.2.8.tar.gz 。服務器版本為:CentOS 6.5 x64

  Redis的源碼安裝非常簡單,如下:

wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar xf redis-3.2
.8.tar.gz cd redis-3.2.8 #編譯與安裝 make && make install

  接下來配置Redis基礎部分,如下:

#首先創建Redis目錄,方便後期維護
mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc

#拷貝Redis命令
cp /usr/local/bin/redis-* /usr/local/redis/bin/

#拷貝Redis配置文件
#註意:在Redis源碼編譯安裝完成後,在源碼目錄有兩個配置文件後期會使用到,redis.conf和sentinel.conf
cp redis.conf /usr/local/redis/etc

  然後,簡單配置Redis的配置文件(Redis配置文件詳細說明後面會專門寫文章說明),如下:

#該說明幾個需要修改的參數,並沒有列出所有參數,Redis配置文件詳解後期專門寫文章進行講解
vim /usr/local/redis/etc/redis.conf
#Redis監聽地址,默認是127.0.0.1
bind 0.0.0.0
#Redis默認端口,默認監聽地址與端口根據實際情況而定是否需要修改
port 6379
#該參數是指Redis是否在後臺以守護進程運行,默認是no,需要改為yes
daemonize yes
#Redis啟動後默認的PID文件存放位置,可以自定義
pidfile /var/run/redis_6379.pid
#Redis啟動後默認的日誌文件存放文章
logfile "/app/redis/logs/redis.log"
#Redis默認啟動多少庫
databases 16
#下列三個參數是Redis持久化觸發條件
save 900 1
save 300 10
save 60 10000
#Redis持久化存放數據的文件文件名
dbfilename dump.rdb
#Redis持久化數據存放目錄
dir /app/redis/data

  最後,增加一個Redis的系統服務。

vim /etc/init.d/redis
#!/bin/sh
#
#chkconfig: 2345 90 10
#Description: This is Redis server file
#

#Source functions libry
. /etc/init.d/functions

#Server name
SNAME=redis-server

#Server directory
PROG=/usr/local/redis/bin/$SNAME

#Server config directory
CFG=/usr/local/redis/etc/redis.conf

start() {
  if [ -f /var/lock/subsys/$SNAME ];then
    echo "$SNAME is already started!"
    exit 0;
  else
    echo "Starting $SNAME ....."
    $PROG $CFG
   if [ "$?" -eq "0" ];then
    touch /var/lock/subsys/$SNAME
    exit 0;
   fi
    exit 0;
  fi
}

stop() {
  echo "Stoping $SNAME ......"
  killall $SNAME
  rm -rf /var/lock/subsys/$SNAME
}

case "$1" in
start)
  start
  ;;
stop)
  stop
  ;;
restart)
  stop
  sleep 3
  start
  ;;
*)
  echo $"Usage: $0 {start|stop|restart}"  
  exit 1  
esac

#增加服務
chmod 777 /etc/init.d/redis 
chkconfig --add redis
chkconfig --list redis
redis              0:off    1:off    2:on    3:on    4:on    5:on    6:off

  現在Redis的基礎安裝已經完成了,下面測試一下,如下:

#啟動Redis系統服務
service redis start
Starting redis-server .....

ps aux |grep redis
root      4045  0.0  0.3 133540  7524 ?        Ssl  16:40   0:00 /usr/local/redis/bin/redis-server 0.0.0.0:6379                   
root      4050  0.0  0.0 103260   876 pts/0    S+   16:40   0:00 grep redis

#使用Redis客戶端命令連接測試
/usr/local/redis/bin/redis-cli 
127.0.0.1:6379> KEYS *
(empty list or set)
127.0.0.1:6379> set name ray
OK
127.0.0.1:6379> KEYS *
1) "name"
127.0.0.1:6379> 

  至此,Redis基礎安裝已完成,下面一章將講解Redis配置密碼訪問,並陸續講解Redis的配置文件詳解,Redis哨兵配置,Redis哨兵+Keepalived等方面。

Redis 部署