標籤:
概述
首先報告一下我系統的版本:
[[email protected] init.d]# cat /etc/issue
系統版本資訊如下:
引用
CentOS release 6.4 (Final)
Kernel \r on an \m
安裝Redis
希望將Redis安裝在此目錄下:
引用
/usr/local/redis
參考 http://redis.io/download的安裝說明,做調整:
引用
$ 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 #安裝到指定目錄中
注意上面的最後一行,我們通過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=6379EXEC=/usr/local/redis/bin/redis-serverCLIEXEC=/usr/local/redis/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF="/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-cliredis 127.0.0.1:6379> auth supermanOKredis 127.0.0.1:6379> pingPONGredis 127.0.0.1:6379>
由於上面我開啟了安全驗證功能,密碼為superman,因此需要auth後才能和伺服器互動。
<完>
安裝Redis完整過程