安装 Redis Server

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

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

下载redis

wgethttp://download.redis.io/releases/redis-3.2.3.tar.gztarxfredis-3.2.3.tar.gzcdredis-3.2.3makePREFIX=/usr/local/redisinstall

没有报错的话,redis 就安装好了。


配置环境变量

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


配置 redis.conf

cdredis-3.2.3//进入redis源码包目录mkdir/usr/local/redis/etc/cpredis.conf/usr/local/redis/etc/cd/usr/local/redis/etc/vimredis.conf

//redis.confdaemonizeyespidfile/var/run/redis/redis.pidport6379tcp-backlog128//tcp队列长度,默认为512,CentOS系统默认为128,此值不应该大于操作系统的该值logfile"/var/log/redis/redis.log"dir/var/redisdb//redis数据存储目录//其他参数目前就不需要了


配置redis的服务脚本

useradd-r-s/sbin/nologin-Mredismkdir/var/run/redismkdir/var/log/redismkdir/var/redisdbchownredis:redis/var/run/redischownredis:redis/var/log/redischownredis:redis/var/redisdb

#!/bin/sh##chkconfig:358416#SimpleRedisinit.dscriptconceivedtoworkonLinuxsystems#asitdoesuseofthe/procfilesystem../etc/rc.d/init.d/functions./etc/sysconfig/network["$NETWORKING"="no"]&&exit0BASEDIR=/usr/local/redisEXEC=$BASEDIR/bin/redis-serverCLIEXEC=$BASEDIR/bin/redis-cliREDIS_USER=redisPIDFILE=/var/run/redis/redis.pidCONF_PATH="$BASEDIR/etc/redis.conf"REDISPORT=$(grep-P"^port\b.*$"$CONF_PATH|awk'{print$2}')functionstart(){if[-f$PIDFILE]thenecho"$PIDFILEexists,processisalreadyrunningorcrashed"elseecho-n"Starting`basename$EXEC`."daemon--user=$REDIS_USER--pidfile=$PIDFILE$EXEC$CONF_PATHwhile[!-d/proc/$(cat$PIDFILE2>/dev/null)]dosleep1echo-n"."doneechofi}functionstop(){if[!-f$PIDFILE]thenecho-n"$PIDFILEdoesnotexist,prognotrunning"echo_failureecho;sleep1return1else#$CLIEXEC-p$REDISPORTshutdownecho-n"Stopping`basename$EXEC`.."killproc-p$PIDFILE$EXEC-TERMwhile[-f$PIDFILE]dosleep1doneechofi}case"$1"instart)start;;stop)stop;;status)status-p$PIDFILE$EXEC;;restart)stopstart;;*)echo"Pleaseusestartorstopasfirstargument";;esac




前提是已经安装好 Redis 和 PHP7 了。


下载phpredis

phpredis项目的GitHub页面是https://github.com/phpredis/phpredis

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

gitclonehttps://github.com/phpredis/phpredis.git//将远程项目代码克隆到本地cdphpredis

我们查看下代码分支结构

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

gitcheckout-bphp7origin/php7//我们本地创建php7分支,其实节点为远程的php7分支gitbranch//这就可以看到我们目前处在新创建的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//我这里是编译安装的PHP7所以需要手动指定php-config的路径//如果你需要开启igbinary序列化支持的话,需要加上参数--enable-redis-igbinarymakemakeinstall



3.安装配置phpredis扩展

检查redis.so 库文件是否存在

修改php.ini配置文件

vim/usr/local/php7/lib/php.iniextention="redis.so"//添加这一行扩展配置php-a>phpinfo();//检查是否有redis的相关信息

servicephp-fpmrestart//重启php-fpm服务


4.测试扩展库是否正常运行

phptests/TestRedis.php--classRedis

phptests/TestRedis.php--classRedis--testecho

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


到此,phpredis 就安装完成了,所以最关键的一步就是 PHP 7 安装redis扩展库是需要在本地切换分支节点的。


5. phpredis 基本用法

测试连接

php>$redis=newRedis();php>echo($redis->connect("127.0.0.1",6379)?"redisisconnected!":"redisconnectfail");redisisconnected!php>echo"redisresponse:".$redis->ping();redisresponse:+PONG


列表操作

<?php$redis=newRedis();echo($redis->connect("127.0.0.1",6379)?"redisisconnected!\n":"redisconnectfail\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));?>

redisisconnected!["book","redis_item2","redis_item1","cup"]


字符串操作

<?php$redis=newRedis();echo($redis->pconnect("127.0.0.1",6379)?"redisisconnected!\n":"redisconnectfail\n");//pconnect长连接$redis->set("hello","world");echo$redis->get("hello");$redis->del("hello");echo$redis->get("hello");?>

redisisconnected!world


获取redis中所有键

<?php$redis=newRedis();echo($redis->connect("127.0.0.1",6379)?"redisisconnected!\n":"redisconnectfail\n");print_r($redis->keys("*"));?>

redisisconnected!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)