先扫下盲:要用phpredis扩展的时候,必须要安装redis的服务也就是redis-server,在网上大多数文章只是写了安装phpredis的扩展,所以就不要在问,我们执行一样的命令,别人能跑起来而我不能


先安装redis服务

编译安装:
首先要去redis.io去下载你想要运行的redis版本,也可以这样
wget  http://download.redis.io/redis-stable.tar.gz    直接下载
tar -zxvf redis-stable.tar.gz 
cd redis-stable/
make & make install 
到这就算编译完成了,接下来就是把redis的服务端和客户端放到PATH里
cp redis-server /usr/local/bin/
cp redis-cli /usr/local/bin/

先建几个文件夹,等会用
 mkdir /etc/redis            放redis配置文件
 mkdir /var/redis
 mkdir /var/redis/log        放redis日志文件
 mkdir /var/redis/run        放redis.pid文件
 mkdir /var/redis/6379       
 
 cp redis.conf /etc/redis/redis.conf
 vim /etc/redis/redis.conf
 
 daemonize yes  
 pidfile /var/redis/run/redis.pid  
 logfile /var/redis/log/redis.log  
 dir /var/redis/6379  
 
 修改完配置文件后运行
 启动redis服务:
    redis-server /etc/redis/redis.conf
  通过cli模式运行redis
    redis-cli
    
  接下来你就可以操作数据: 
  1、插入数据  
  redis 127.0.0.1:6379> set name wwl  
  OK  
  设置一个key-value对。  
  2、查询数据  
  redis 127.0.0.1:6379> get name  
  "wwl"  
  取出key所对应的value。  
   
  3、删除键值  
  redis 127.0.0.1:6379> del name  
  删除这个key及对应的value。  
  4、验证键是否存在  
  redis 127.0.0.1:6379> exists name  
  (integer) 0  
  其中0,代表此key不存在;1代表存在。

到这里就可以安装phpredis的扩展了

接下来就是去下载phpredis扩展,我是通过git 下载
git clone  
cd phpredis
 phpize
whereis php-config(不知道php-config 在哪可以这样先查找)
./configure --with-php-config=/alidata/server/php-5.4.23/bin/php-config
 make & make install
 
 编译完成后就去更改 php.ini
 加上这句:extension=redis.so  
 php -m 查看是否redis模块

安装就到这结束,之后就是通过php操作redis 

我运行的测试文件:

<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->set('astar','bbb');

echo $redis->get('astar');
$redis->lpush('tt_list','redis');
$redis->lpush('tt_list','redia');
$redis->lpush('tt_list','redib');
$redis->lpush('tt_list','redic');
$redis->lpush('tt_list','redid');

$arlist=$redis->lrange('tt_list',0,3);
print_r($arlist);

$arlist=$redis->keys("*");
print_r($arlist);

输出数据

bbbArray
(
    [0] => redid
    [1] => redic
    [2] => redib
    [3] => redia
)
Array
(
    [0] => tt_list
    [1] => astar
)


补充一下:通过cli命令没有问题,但通过websevice运行时报错,可能是redis.so没有加载好,需要重启下php-fpm进程  /etc/init.d/php-fpm restart 之后通过phpinfo就可以看到redis加载了


在cli模式下测了下 redis 的subscribe(订阅消息) 

<?php
/**
* 开启订阅,并监听tv1
*/
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->set('astar','bbb');

echo $name=$redis->get('astar');
//$redis->publish('tv1',$name);
$redis->subscribe(array('tv1'),'callback');
function callback($instance, $channelName, $message) {
  echo $channelName, "==>", $message,PHP_EOL;
}
<?php
/**
* 发布订阅
*/
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$channel = 'tv1';  // channel
$msg = 'ccc'; // msg
$redis->publish($channel, $msg);
运行结果:
bbbtv1==>ccc
tv1==>ccc
tv1==>ccc