1、redis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
2、windows下安装redis
下载地址 https://github.com/MicrosoftArchive/redis/releases
本文使用版本:redis64-3.0.501.zip (使用其他版本也可以,只是不知道为啥其他版本报有木马)
解压后目录如下:
文件名 | 简要 |
redis-benchmark.exe | 基准测试 |
redis-check-aof.exe | aof |
redischeck-dump.exe | dump |
redis-cli.exe | 客户端 |
redis-server.exe | 服务器 |
redis.windows.conf | 配置文件 |
然后编辑redis.windows.conf文件,我看网上有的教程说编辑里边maxheap <bytes> ,但是3.x版本以后,修改的是 maxmemory <bytes>, bytes是字节,请自行换算,我这里改成maxmemory 1024000000。
其实这个地方可以不用设置,他描述上已经说了,redis会自动设置的。
设置redis的密码:找到# requirepass foobared 改为 requirepass 我的密码 ,本机测试可不设置。
保存后打开redis的解压目录,shift+鼠标左键找到菜单上,在此处打开命令行窗口
或 自行运行cmd命令到此redis目录下
命令如下:
redis-server.exe redis.windows.conf --maxmemory 200M
其中--maxmemory 200M是选填的,如果你配置文件redis.windows.conf中配置,这个就可以省去,如果没配置,这个可以加也可以不加,你开心就好。
当出现此界面的时候,说明启动成功,监听端口6379,然后让我们测试一下效果吧
重新打开一个DOS界面,效果如下:
如果你设置了redis的密码,则需要在set之前执行auth 密码 命令,否则会提示(error) NOAUTH Authentication required.
3、PHP中使用
使用phpinfo()函数查看PHP的版本信息和php软件位数(32位还是64位软件)和编译环境。这会决定redis扩展文件版本。
1).下载 dll文件
http://windows.php.net/downloads/pecl/snaps/redis
或者
https://pecl.php.net/package/redis
或者
redis 下载地址 https://windows.php.net/downloads/pecl/releases/redis/
igbinary下载地址 https://windows.php.net/downloads/pecl/releases/igbinary/
版本一定要对应看是TS还是NTS,以及php版本,是VC11还是VC12还是其他版本号,不一致的版本驱动文件不会生效,代码中一直会抛异常Class 'Redis' not found,博主最开始也是经历了这个坑。看清楚我的php是x86[32位]的(备注:64位window操作系统安装的32位的php),编译环境是MSVC14(VisualC++2015) ,扩展版本是NTS,VC14。所以博主使用 php_redis-3.1.3-7.1-nts-vc14-x86.zip扩展包。php5.6及以下版本可能需要用redis2.2.7版本
2).下载扩展包把php_redis.dll 和 php_igbinary.dll(可没有) 放入PHP的ext文件夹,然后在php.ini配置文件里添加如下代码:
;php_redis
extension=php_igbinary.dll
extension=php_redis.dll
3).重启apache,查看phpinfo就有redis扩展的信息了
注意:extension=php_igbinary.dll一定要放在extension=php_redis.dll的前面,否则此扩展不会生效
4、PHP中使用
代码如下
<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->set('test','hello redis');
echo $redis->get('test');
?>
输出 hello redis 成功!
将redis加到Windows服务中
首先还是要启动redis服务器端,然后在运行redis客户端,然后通过Windows的service-install命令,输入
redis-server --service-install redis.windows.conf --loglevel verbose
但是安装好之后,Redis并没有启动,启动命令如下:
redis-server --service-start
停止命令:
redis-server --service-stop
还可以安装多个实例
redis-server --service-install –service-name redisService1 –port 10001
redis-server --service-start –service-name redisService1
redis-server --service-install –service-name redisService2 –port 10002
redis-server --service-start –service-name redisService2
redis-server --service-install –service-name redisService3 –port 10003
redis-server --service-start –service-name redisService3
卸载命令:
redis-server --service-uninstall
最后提示一下:2.8版本的不支持32位系统,32位系统要去下载2.6版本的。2.6版本的无法像上面一样方便的部署,它提供一个叫RedisWatcher的程序来运行redis server,Redis停止后会自动重启
以后就可以使用win的服务启动,而不需要每次都要打开一个DOS界面启动了。(win10系统需要到控制面板,服务,redis,启动)
另外推荐一个Redis可视化管理工具:Redis Desktop Manager,官网的下载地址被墙了,可以在网盘下载 v0.7.6版,放个截图
推荐redis技术阅读:http://www.cnblogs.com/hoojo/p/4466024.html