phpredis php7分支,phpredis -- Redis编译安装,PHP 7 安装 Redis 扩展

安装 Redis Server

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

下载rediswget 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 <

export  REDIS_HOME=/usr/local/redis

export PATH=\$PATH:\$REDIS_HOME/bin'

EOF

. /etc/profile

配置 redis.confcd 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

但是有个问题,php7 的redis扩展项目和php5的redis扩展项目代码并不通用,所以在phpredis项目下有个新的支持php7版本的分支,但是你默认clone的项目是停留在原版php5的项目中的,所以需要手动检出到php7的分支git clone https://github.com/phpredis/phpredis.git

//将远程项目代码克隆到本地

cd phpredis

我们查看下代码分支结构

a16e61208d14278b5b8095bacf0c197a.png

可以看到远程分支上有一个 php7 的分支,这个就是单独支持PHP 7的phpredis扩展git checkout -b php7  origin/php7

//我们本地创建php7分支,其实节点为远程的php7分支

git branch

//这就可以看到我们目前处在新创建的 php7 分支上

05a9b8d990ac35e18d0fc0b20fe019aa.png

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 库文件是否存在

56ae2c87c43aab25080c94860865b142.png

修改php.ini配置文件vim  /usr/local/php7/lib/php.ini

extention="redis.so"

//添加这一行扩展配置

php -a

>phpinfo();

//检查是否有redis的相关信息

5dd3c93a40b9767c2451f5f512e315a8.pngservice php-fpm restart

//重启php-fpm服务

4.测试扩展库是否正常运行php tests/TestRedis.php --class Redis

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

994437d524856ed2c1f6fabee7ff9b8e.png

正常情况下,应该是如图的反馈信息。

到此,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

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值