搭建高性能的PHP Redis开发环境

来源:互联网 发布:淘宝直通车权重怎么看 编辑:程序博客网 时间:2024/06/18 04:58

一、Redis在windows系统中的安装

redis的官方安装包并不支持windows系统的使用。但是有团队已经开发了redis的windows适配的服务端和客户端,一般情况下我们是把redis服务器单独配置的,而且redis是支持网络的,所以最好还是安装在Linux系统的专门redis服务器,如果考虑到主从同步redis提供的方法也很容易实现。

redis在windows下的安装包的下载地址如下。

https://github.com/ServiceStack/redis-windows/tree/master/downloads

 

建议大家下载相对应的版本,下载下来xxxxx.zip后需要解压使用。我下载的是redis-latest.zip也就是redis3.0.5版本,对于版本的下载不要下载太新的版本,以免没有对应的dll扩展。

下载后目录的结构如下:

 

在这些文件中只要注意redis-server.exe是redis在windows系统的服务端,如果要使用redis这个脚本必须点击运行而且不能关闭。如果出现以下的界面就表示运行正常了。默认情况host是127.0.0.1端口是6379,当然这个可以自己来修改。

 

如果要在客户端测试redis服务是否正常运行了可以打开刚刚解压的包中的redis-cli来测试

 

可以输入以下内容来测试redis的运行效果。

SET username "weiyongqiang"

GET username

如果正常的输出”weiyongqiang”就说明redis服务启动成功了,下边就是在PHP中安装redis扩展了。

二、在PHP中安装redis扩展

在PHP中安装扩展模块一般是添加dll文件来实现的。那我们首先要找到redis的dll扩展。

在该地址下载php_redis.dll:http://windows.php.net/downloads/pecl/snaps/redis/

 

在下载之前需要看一下你所使用的PHP的这些信息,要和你要下载的扩展对应起来。

我的PHP版本是5.5.30而且我的PHP是nts(非线程安全的),是VC11,x86的所以我下载的扩展为

 

下载解压后需要将其中的php_redis.dll放置在PHP的ext目录下。如果不知道怎么样找ext目录可以再PHPinfo的输出中看loaded configurationfile所在的目录在其中就可以看到ext

 

复制到ext后还需要打开php.ini来修改其中的扩展选项。php.ini的位置就是我上边所截图的位置,打开php.ini后在任意位置添加

extension=php_redis.dll

然后重启服务器软件,如果使用的apache就使用apache重启的方法,如果是nginx就使用nginx重启的方法。

重启后再输出下phpinfo()在其中查找是否有redis扩展的信息

 

只有出现该选项才表示扩展安装成功。

三、在PHP中使用redis存取数据

3.1简单数据类型的读写

public function index(){

    $redisObj = new \Redis();

    $redisObj->connect('127.0.0.1',6379);

    $redisObj->set('name', '源码时代');

    $name = $redisObj->get('name');

    dump($name);

}

如果输出为

string(9) "源码时代"

就表示安装成功了。注意:我的测试中使用了thinkphp框架,如果不使用框架要在输出的位置把dump()替换成print_r($name)来输出或者直接用echo也是可以的。

3.2哈希类型的读写

在redis中如果要读写数组等hash类型的数据就不能简单的使用set和get了。redis的API中为我们提供了hash类型数据的读写方法如下:

public function index(){

    $redisObj = new \Redis();

    $redisObj->connect('127.0.0.1',6379);

    $redisObj->hMset('userinfo', array('name'=>'源码时代','age'=>22));

    $info = $redisObj->hGetAll('userinfo');

    dump($info);

}

对于hash类型的操作方法分别是

public function hMset( $key, $hashKeys )

读取是方法为

public function hGetAll( $key )

还有更多的关于PHP操作redis的方法请查看官方提供的手册。当然如果使用框架我们也可以使用框架为我们封装好的redis的使用类来操作。比如ThinkPHP框架为我们已经封装好了redis驱动,这样无论我们存取的数据类型是何种类型,在写入时我们只要使用$obj->set(key,value);读取时使用$obj->get(key);来读取显得非常方便。

本文来源:http://www.itsource.cn/web/news/5/20170302/1135.html,转载请注明出处!欢迎加入PHP技术交流QQ群:324477177。

0 0