中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

phpredis -- Redis編譯安裝,PHP 7 安裝 Redis 擴展

發布時間:2020-08-10 16:33:23 來源:網絡 閱讀:7949 作者:Professor哥 欄目:web開發

安裝 Redis Server

redis的官方網站是:http://redis.io/ 

目前的最新穩定版是 3.2版。

下載redis

wget http://download.redis.io/releases/redis-3.2.3.tar.gz
tar xf redis-3.2.3.tar.gz
cd redis-3.2.3
make PREFIX=/usr/local/redis install

沒有報錯的話,redis 就安裝好了。


配置環境變量

cat > /etc/profile.d/redis.sh << EOF
export  REDIS_HOME=/usr/local/redis
export PATH=\$PATH:\$REDIS_HOME/bin'
EOF
. /etc/profile


配置 redis.conf

cd redis-3.2.3
// 進入redis 源碼包目錄
mkdir /usr/local/redis/etc/
cp redis.conf  /usr/local/redis/etc/
cd /usr/local/redis/etc/
vim redis.conf
//redis.conf
daemonize yes
pidfile /var/run/redis/redis.pid
port 6379
tcp-backlog 128    // tcp隊列長度,默認為512,CentOS系統默認為128,此值不應該大于操作系統的該值
logfile "/var/log/redis/redis.log"
dir /var/redisdb    // redis數據存儲目錄
// 其他參數目前就不需要了


配置redis的服務腳本

useradd -r -s /sbin/nologin -M redis
mkdir /var/run/redis
mkdir /var/log/redis
mkdir /var/redisdb
chown redis:redis /var/run/redis
chown redis:redis /var/log/redis
chown redis:redis /var/redisdb
#!/bin/sh
#
# chkconfig:   35 84 16 
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network

[ "$NETWORKING" = "no" ] && exit 0

BASEDIR=/usr/local/redis
EXEC=$BASEDIR/bin/redis-server
CLIEXEC=$BASEDIR/bin/redis-cli
REDIS_USER=redis

PIDFILE=/var/run/redis/redis.pid
CONF_PATH="$BASEDIR/etc/redis.conf"
REDISPORT=$(grep -P "^port\b.*$" $CONF_PATH | awk '{print $2}')

function start() {
	if [ -f $PIDFILE ]                                                   
	then                                                                 
	        echo "$PIDFILE exists, process is already running or crashed"
	else                                                                 
	        echo -n "Starting `basename $EXEC` ."                           
	        daemon --user=$REDIS_USER --pidfile=$PIDFILE $EXEC $CONF_PATH
		while [ ! -d /proc/$(cat $PIDFILE 2> /dev/null) ]
		do
		    sleep 1
		    echo -n "."
		done
	        echo                                                         
	fi                                                                   
}
function stop() {
	if [ ! -f $PIDFILE ]                                          
	then                                                          
	        echo -n "$PIDFILE does not exist, prog not running"
		echo_failure
		echo ; sleep 1
		return 1
	else                                                          
	        #$CLIEXEC -p $REDISPORT shutdown                       
	        echo -n "Stopping `basename $EXEC` .."
                killproc -p $PIDFILE $EXEC -TERM
	        while [ -f $PIDFILE ]
	        do
	            sleep 1
	        done    
		echo                                              
	fi                                                            
}

case "$1" in
    start)
	start
        ;;
    stop)
        stop
        ;;
    status)
        status -p $PIDFILE $EXEC
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac




前提是已經安裝好 Redis 和 PHP7 了。


  1. 下載phpredis 

phpredis項目的GitHub頁面是 https://github.com/phpredis/phpredis 

但是有個問題,php7 的redis擴展項目和php5的redis擴展項目代碼并不通用,所以在phpredis項目下有個新的支持php7版本的分支,但是你默認clone的項目是停留在原版php5的項目中的,所以需要手動檢出到php7的分支

git clone https://github.com/phpredis/phpredis.git
//將遠程項目代碼克隆到本地
cd phpredis

我們查看下代碼分支結構

phpredis -- Redis編譯安裝,PHP 7 安裝 Redis 擴展

可以看到遠程分支上有一個 php7 的分支,這個就是單獨支持PHP 7的phpredis擴展

git checkout -b php7  origin/php7
//我們本地創建php7分支,其實節點為遠程的php7分支
git branch
//這就可以看到我們目前處在新創建的 php7 分支上

phpredis -- Redis編譯安裝,PHP 7 安裝 Redis 擴展

ps:如果有人對命令提示符上面的[>php7] 分支提示感興趣的話,可以瀏覽我之前的文章:個性定制你的 Git 命令行提示符 http://professor.blog.51cto.com/996189/1737500    



2.開始編譯phpredis擴展

phpize
//檢查php擴展
./configure --with-php-config=/usr/local/php7/bin/php-config
//我這里是編譯安裝的PHP 7 所以需要手動指定php-config的路徑
//如果你需要開啟igbinary序列化支持的話,需要加上參數 --enable-redis-igbinary
make
make install



3.安裝配置phpredis擴展

檢查redis.so 庫文件是否存在

phpredis -- Redis編譯安裝,PHP 7 安裝 Redis 擴展

修改php.ini配置文件

vim  /usr/local/php7/lib/php.ini
extention="redis.so"
//添加這一行擴展配置
php -a
>phpinfo();
//檢查是否有redis的相關信息

phpredis -- Redis編譯安裝,PHP 7 安裝 Redis 擴展

service php-fpm restart
//重啟php-fpm服務


4.測試擴展庫是否正常運行

php tests/TestRedis.php --class Redis

phpredis -- Redis編譯安裝,PHP 7 安裝 Redis 擴展

 php tests/TestRedis.php --class Redis --test echo

phpredis -- Redis編譯安裝,PHP 7 安裝 Redis 擴展

正常情況下,應該是如圖的反饋信息。


到此,phpredis 就安裝完成了,所以最關鍵的一步就是 PHP 7 安裝redis擴展庫是需要在本地切換分支節點的。


5. phpredis 基本用法

測試連接

php > $redis = new Redis();
php > echo ($redis -> connect("127.0.0.1", 6379) ? "redis is connected!" : "redis connect fail");
redis is connected!
php > echo "redis response:" . $redis -> ping();
redis response:+PONG


列表操作

<?php
    $redis = new Redis();
    echo ($redis -> connect("127.0.0.1", 6379) ? "redis is connected!\n" : "redis connect fail\n");
    $redis -> lpush("test_key", "redis_item1");
    $redis -> lpush("test_key", "redis_item2");
    $redis -> lpush("test_key", "book");
    $redis -> rpush("test_key", "cup");
    $aList = $redis -> lrange("test_key", 0, -1);
    print(json_encode($aList));
?>
redis is connected!
["book","redis_item2","redis_item1","cup"]


字符串操作

<?php
    $redis = new Redis();
    echo ($redis -> pconnect("127.0.0.1", 6379) ? "redis is connected!\n" : "redis connect fail\n");
    // pconnect長連接
    $redis -> set("hello", "world");
    echo $redis -> get("hello");

    $redis -> del("hello");
    echo $redis -> get("hello");
?>
redis is connected!
world


獲取redis中所有鍵

<?php
    $redis = new Redis();
    echo ($redis -> connect("127.0.0.1", 6379) ? "redis is connected!\n" : "redis connect fail\n");
    print_r($redis -> keys("*"));
?>
redis is connected!
Array
(
    [0] => test:{z}Inter
    [1] => {list}lkey
    [2] => {key}:9
    [3] => {z}key1
    ......
    [123] => k
    [124] => {s}DiffDest
    [125] => wait-bar
    [126] => test:k1
)


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西丰县| 新丰县| 乌海市| 贺州市| 深圳市| 金乡县| 布拖县| 黔江区| 辽阳市| 洮南市| 定结县| 勐海县| 靖宇县| 什邡市| 阿巴嘎旗| 察隅县| 黑河市| 沙湾县| 庆安县| 百色市| 镇远县| 康马县| 西充县| 泰安市| 乌拉特后旗| 普格县| 奎屯市| 紫金县| 东丽区| 繁昌县| 兴国县| 河曲县| 玛曲县| 井冈山市| 拜泉县| 山阴县| 博湖县| 淮阳县| 中阳县| 育儿| 石家庄市|