Php-Redis安装测试笔记

yipeiwu_com6年前PHP代码库

后端开发用到php操作redis,在此将安装测试过程中遇到的问题汇总记录下来,以便以后参考!(系统为ubuntu)

1.redis安装

下载地址:http://download.redis.io/releases/
解压安装:

复制代码 代码如下:

tar -xvf redis-2.8.17.tar.gz
make
sudo make install

为方便使用,在/usr目录下创建redis目录,讲如下几个文件拷贝到/usr/redis/目录下:
复制代码 代码如下:

/yourdir/redis-2.8.17/redis.conf
/yourdir/redis-2.8.17/src/redis-benchmark
/yourdir/redis-2.8.17/src/redis-server
/yourdir/redis-2.8.17/src/redis-cli

当然,你也可以通过软连接的方式达到方便使用的目的。此外,你也可以将redis-server加入开机启动,此处从略。

2.redis测试

1)先开启redis服务端程序
为方便测试,我们将redis.conf配置文件中的loglevel和logfile的值,修改后如下:
loglevel debug
logfile “/tmp/redis.log”
jay13@ubuntu:/usr/redis$ redis-server redis.conf
2)开启redi客户端,通过客户端向redis数据库中进行增删改查操作。整个操作过程中生成的日志可以到/tmp/redis.log中查看。
以最简单的key操作为例,实例如下:

复制代码 代码如下:

jay13@ubuntu:/usr/redis$ redis-cli
127.0.0.1:6379> set jay13 jb51.net
OK
127.0.0.1:6379> set jay hello,world
OK
127.0.0.1:6379> get jay
"hello,world"
127.0.0.1:6379> get jay13
"jb51.net"
127.0.0.1:6379> del jay
(integer) 1
127.0.0.1:6379> get jay
(nil)
127.0.0.1:6379> set jay13 www.jb51.net
OK
127.0.0.1:6379> get jay13
"www.jb51.net"

3.安装phpredis扩展

在使用sudo apt-get  install php5安装php时,默认是没有安装phpize的,我们安装phpredis时,需要用到phpize,因此,需要先安装phpize。
1)我们通过安装php开发者工具来获取phpize。执行如下命令即可:

复制代码 代码如下:

sudo apt-get install php5-dev

2)获取phpredis源文件
最新的phpRedis地址:https://github.com/nicolasff/phpredis
按照GitHub上的说明进行如下安装时,

复制代码 代码如下:

phpize
./configure --enable-redis-igbinary
make && make install

可能会出现如下出错说明:

复制代码 代码如下:

checking for igbinary includes... configure: error: Cannot find igbinary.h

这个是因为我们没有igbinary扩展,这是phpredis依赖的一个东西。
好吧,怎么安装igbinary呢?

使用apt-get没有无法安装完成,我们通过下载安装文件进行安装。

复制代码 代码如下:

wget <a href="http://pecl.php.net/get/igbinary-1.1.1.tgz">http://pecl.php.net/get/igbinary-1.1.1.tgz</a>
 
tar -xzvf igbinary-1.1.1.tgz
 
cd igbinary-1.1.1
 
phpize
 
./configure # No need for extra config params
 
make
 
make install

安装好igbinary后,可以用如下命令安装phpredis。

复制代码 代码如下:

phpize

./configure –enable-redis-igbinary

make && make install


至此,安装完成。

我们修改php.ini配置文件,将刚才安装的两个扩展加入到php.ini文件中,加入的语句如下:

复制代码 代码如下:

extension=igbinary.so

extension=redis.so


重启apache,Done!!!

4.测试php-redis

在网页根目录/var/www/中新建文件test.php,内容如下:

复制代码 代码如下:

<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->set('Jay13','www.jb51.net');
echo 'Jay13:'.$redis->get('Jay13');
echo '</br>';
echo 'Jay12:'.$redis->get('Jay12');
?>

结果如下图:

相关文章

PHP类继承 extends使用介绍

出来工作这么久了,项目经验倒是不少,但是当问及底层的东西时候,常常是一言不发了。现在项目设计底层的东西越来越少,可以说是真正用到的也就是那么一点,真正核心的东西都已经被框架封装好了。总感...

PHP中去掉字符串首尾空格的方法

第一种方法:通过php自带的函数 <?php /* trim 去除一个字符串两端空格, rtrim 是去除一个字符串右部空格, ltrim 是去除一个字符串左部空格。 */ ?&g...

如何阻止网站被恶意反向代理访问(防网站镜像)

什么是反向代理? 先说说正向代理的概念: 正向代理,也就是传说中的代理,他的工作原理就像一个跳板。简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器。这个代理服务器呢,...

深入探讨&quot;&amp;lt;br /&amp;gt;&quot;和 &quot;\r\n&quot; 两者有什么区别??

\r\n是输出的HTML代码换行,客户看到的效果没有换行。<br />则相反效果:我是内容\r\n我是内容我是内容<br />我是内容==============...

php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别

应该这样用if(isset($_POST['submit'])) { } 提交表单时 if($_POST[submit])与 if(isset($_POST[submit])) 的区别...