安裝Redis完整過程

概述
   首先報告一下我係統的版本:redis

[root@firefish init.d]# cat /etc/issue


   系統版本信息以下:數據庫

引用vim


CentOS release 6.4 (Final)
Kernel \r on an \m安全



安裝Redis

   但願將Redis安裝在此目錄下:bash

引用服務器

/usr/local/redisapp


  參考 http://redis.io/download的安裝說明,作調整: ui

引用google


$ mkdir /usr/local/redis
$ cd /usr/local/src
$ wget http://redis.googlecode.com/files/redis-2.6.14.tar.gz
$ tar xzf redis-2.6.14.tar.gz 
$ ln -s redis-2.6.14 redis #創建一個連接
$ cd redis
$ make PREFIX=/usr/local/redis install #安裝到指定目錄中spa


   注意上面的最後一行,咱們經過PREFIX指定了安裝的目錄。若是make失敗,通常是大家系統中還未安裝gcc,那麼能夠經過yum安裝之:

yum install gcc


  安裝完成後,則執行make.
 
  在安裝redis成功後,你將能夠在/usr/local/redis看到一個bin的目錄,裏面包括瞭如下文件:

redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-server

 

修改系統配置文件,執行命令

 echo vm.overcommit_memory=1 >> /etc/sysctl.conf

 sysctl vm.overcommit_memory=1 或執行echo vm.overcommit_memory=1 >>/proc/sys/vm/overcommit_memory

使用數字含義:

0,表示內核將檢查是否有足夠的可用內存供應用進程使用;若是有足夠的可用內存,內存申請容許;不然,內存申請失敗,並把錯誤返回給應用進程。

1,表示內核容許分配全部的物理內存,而無論當前的內存狀態如何。

2,表示內核容許分配超過全部物理內存和交換空間總和的內存

 redis配置文件解析

redis.conf

daemonize yes---目的使進程在後臺運行

參數介紹:

daemonize:是否之後臺daemon方式運行

pidfile:pid文件位置

port:監聽的端口號

timeout:請求超時時間

loglevel:log信息級別

logfile:log文件位置

databases:開啓數據庫的數量

save * *:保存快照的頻率,第一個*表示多長時間,第三個*表示執行多少次寫操做。在必定時間內執行必定數量的寫操做時,自動保存快照。可設置多個條件。

rdbcompression:是否使用壓縮

dbfilename:數據快照文件名(只是文件名,不包括目錄)

dir:數據快照的保存目錄(這個是目錄)

appendonly:是否開啓appendonlylog,開啓的話每次寫操做會記一條log,這會提升數據抗風險能力,但影響效率。

appendfsync:appendonlylog如何同步到磁盤(三個選項,分別是每次寫都強制調用fsync、每秒啓用一次fsync、不調用fsync等待系統本身同步)

6. 啓動redis

 $ cd /usr/local/bin

 ./redis-server /etc/redis.conf

 檢查是否啓動成功

$ ps -ef | grep redis

 

將Redis作成一個服務

1.複製腳本到/etc/rc.d/init.d目錄

   按以上步驟安裝Redis時,其服務腳本位於:

/usr/local/src/redis/utils/redis_init_script


   必須將其複製到/etc/rc.d/init.d的目錄下:

cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis


   如下將redis_init_script複製到/etc/rc.d/init.d/,同時易名爲redis。
  
   若是這時,咱們直接註冊服務:

chkconfig --add redis


   將報如下錯誤:

引用

redis服務不支持chkconfig


   爲些,咱們須要更改redis的腳本,請看下節說明。

2.更改redis的服務腳本

  

vim /etc/rc.d/init.d/redis


 
看到如下的文件內容:

#!/bin/bash
#chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF &
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac



   1)解決沒法註冊的問題:

   原文件是沒有如下第2行的內容的,

引用

#chkconfig: 2345 80 90


    這時若是註冊將報錯,要添加再註冊就OK了。
 
   2)更改EXEC、CLIEXEC參數,設置對應的值,如上所示即和咱們前面安裝的一致。

   3)更改redis開啓的命令,之後臺運行的方式執行:
  

$EXEC $CONF &


   注意後面的那個「&」,便是將服務轉到後面運行的意思,不然啓動服務時,Redis服務將
佔據在前臺,佔用了主用戶界面,形成其它的命令執行不了。

   4)將redis配置文件拷貝到/etc/redis/${REDISPORT}.conf
  

mkdir /etc/redis 
      cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf


   這樣redis服務腳本指定的CONF就存在了。默認狀況下,Redis未啓用認證,能夠經過開啓6379.conf的requirepass 指定一個驗證密碼。


   以上操做完成後,便可註冊服務:

chkconfig --add redis



3.啓動Redis服務

 

$ service redis start



將Redis的命令所在目錄添加到系統參數PATH中

修改profile文件:
#vi /etc/profile
在最後行添加:

export PATH="$PATH:/usr/local/redis/bin"


而後立刻應用這個文件:

. /etc/profile



  這樣就能夠直接調用redis-cli的命令了,以下所示:

$ redis-cli
redis 127.0.0.1:6379> auth superman
OK
redis 127.0.0.1:6379> ping
PONG
redis 127.0.0.1:6379>

  因爲上面我開啓了安全驗證功能,密碼爲superman,所以須要auth後才能和服務器交互。 <完>   

相關文章
相關標籤/搜索