您好,登錄后才能下訂單哦!
安裝 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 了。
下載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
我們查看下代碼分支結構
可以看到遠程分支上有一個 php7 的分支,這個就是單獨支持PHP 7的phpredis擴展
git checkout -b php7 origin/php7 //我們本地創建php7分支,其實節點為遠程的php7分支 git branch //這就可以看到我們目前處在新創建的 php7 分支上
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 庫文件是否存在
修改php.ini配置文件
vim /usr/local/php7/lib/php.ini extention="redis.so" //添加這一行擴展配置 php -a >phpinfo(); //檢查是否有redis的相關信息
service php-fpm restart //重啟php-fpm服務
4.測試擴展庫是否正常運行
php tests/TestRedis.php --class Redis
php tests/TestRedis.php --class Redis --test echo
正常情況下,應該是如圖的反饋信息。
到此,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 )
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。