一、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。