概述
首先報告一下我係統的版本: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後才能和服務器交互。 <完>