Centos 下編譯安裝Redis

YPHP發表於2015-08-12

安裝環境說明:

作業系統:Centos 6.5 -64bit

安裝路徑:/usr/local/redis

開始編譯redis

tar -zxvf redis-2.8.19.tar.gz 
cd redis-2.8.19 
make
make PREFIX=/usr/local/redis install

Redis配置

mkdir /usr/local/redis/etc/
cp redis.conf /usr/local/redis/etc/ 
cd /usr/local/redis/bin/
cp redis-benchmark redis-cli redis-server /usr/bin/

調整下記憶體分配使用方式並使其生效

#此引數可用的值為0,1,2 
#0表示當使用者空間請求更多的記憶體時,核心嘗試估算出可用的記憶體 
#1表示核心允許超量使用記憶體直到記憶體用完為止 
#2表示整個記憶體地址空間不能超過swap+(vm.overcommit_ratio)%的RAM值 
echo "vm.overcommit_memory=1">>/etc/sysctl.conf
sysctl -p

修改redis配置

vim /usr/local/redis/etc/redis.conf

# 修改一下配置
# redis以守護程式的方式執行
# no表示不以守護程式的方式執行(會佔用一個終端)  
daemonize yes

# 客戶端閒置多長時間後斷開連線,預設為0關閉此功能                                      
timeout 300

# 設定redis日誌級別,預設級別:notice                    
loglevel verbose

# 設定日誌檔案的輸出方式,如果以守護程式的方式執行redis 預設:"" 
# 並且日誌輸出設定為stdout,那麼日誌資訊就輸出到/dev/null裡面去了 
logfile stdout

redis環境變數配置

vim /etc/profile
export PATH="$PATH:/usr/local/php/bin:/usr/local/mysql/bin:/usr/local/redis/bin"
# 儲存退出

# 讓環境變數立即生效
source /etc/profile

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.

PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli
   
PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/etc/redis.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
        if [ "$?"="0" ] 
        then
              echo "Redis is running..."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac

Redis開機自啟動配置

# 複製指令碼檔案到init.d目錄下
cp redis /etc/init.d/

# 給指令碼增加執行許可權
chmod +x /etc/init.d/redis

# 檢視服務列表
chkconfig --list

# 新增服務
chkconfig --add redis

# 配置啟動級別
chkconfig --level 2345 redis on

Redis 啟動、停止測試

service redis start   #或者 /etc/init.d/redis start  
service redis stop   #或者 /etc/init.d/redis stop

# 檢視redis程式
ps -el|grep redis

# 埠檢視
netstat -an|grep 3306

Redis 防火牆配置

# 開啟防火牆規則
vim /etc/sysconfig/iptables

# 增加內容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

# 重啟火牆規則立即生效
service iptables restart 

安裝PHP Redis 擴充套件包

unzip phpredis-develop.zip
cd phpredis-develop

# 生成擴充套件配置
/usr/local/php/bin/phpize

# 編譯Redis
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

# 安裝完成,返回模組所在路徑
/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

配置PHP支援redis

編輯php.ini檔案

vim /usr/local/php/etc/php.ini

# 修改以下內容
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"

# 增加擴充套件到php
extension = redis.so

重新啟動php-fpm

/etc/init.d/php-fpm restart

在php測試下是否成功

<?php
$redis = new Redis();
$redis->connect(`192.168.25.129`, 6379);
$redis->set(`key`, `test`);
echo $redis->get(`key`);

結果截圖( 成功輸出了快取值 ):

圖片描述

總結

還沒想好………………..

相關文章