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/dmajkic/redis/downloads;http://pan.baidu.com/s/1gdl9BZt。下载到的Redis支持32bit和64bit。根据自己实际情况选择,我选择64bit。把64bit文件内容拷贝到需要安装的目录下,比如:D:\dev\redis-2.4.5。
Redis文件夹有以下几个文件
redis-server.exe:服务程序
redis-check-dump.exe:本地数据库检查
redis-check-aof.exe:更新日志检查
redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于Apache的ab工具)
redis.conf:配置文件
打开一个cmd窗口,使用cd命令切换到指定目录(D:\dev\redis-2.4.5)运行 redis-server.exe redis.conf 。运行以后出现如下界面。
这就说明Redis服务端已经安装成功。
重新打开一个cmd窗口,使用cd命令切换到指定目录(D:\dev\redis-2.4.5)运行 redis-cli.exe -h 127.0.0.1 -p 6379,其中 127.0.0.1是本地ip,6379是redis服务端的默认端口。运行成功如下图所示。
这样,Redis windows环境下搭建已经完成,是不是很简单。
这样,Redis windows环境下搭建已经完成,是不是很简单。
环境已经搭建好,总得测试下吧。比如:存储一个key为test,value为hello world的字符串,然后获取key值。
正确输出 hell world,测试成功!
3、PHP中添加phpredis扩展
下载 dll文件
php_redis.dll 扩展 For PHP5.4.x
PHP5.4.x 的 redis 扩展 php_redis.dll
测试平台:Windows XPx32 (FastCGI PHP5.4.9 Nginx 1.4.0)
包含 Non Thread Safe 和 Thread Safe 两个版本
首先把php_redis.dll 和 php_igbinary.dll 放入PHP的ext文件夹,然后在php.ini配置文件里添加如下代码:
extension=php_igbinary.dll
extension=php_redis.dll
重启web服务器
注意:extension=php_igbinary.dll一定要放在extension=php_redis.dll的前面,否则此扩展不会生效
4、PHP中使用
测试代码一:
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->set('test','hello redis');
echo $redis->get('test');
?>
输出 hello redis 成功!
测试代码二:
$redis = new Redis();
$redis->connect("192.168.138.2","6379"); //php客户端设置的ip及端口
//存储一个 值
$redis->set("say","Hello World");
echo $redis->get("say"); //应输出Hello World
//存储多个值
$array = array('first_key'=>'first_val',
'second_key'=>'second_val',
'third_key'=>'third_val');
$array_get = array('first_key','second_key','third_key');
$redis->mset($array);
var_dump($redis->mget($array_get));
?>
附:windows下redis的安装配置和php扩展使用phpredis
一、windows下安装reid
redis-server.exe:服务程序
redis-check-dump.exe:本地数据库检查
redis-check-aof.exe:更新日志检查
redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).
redis.conf 配置文件
3、启动Redis服务(conf文件指定配置文件,若不指定则默认):
D:\redis-2.0.2>redis-server.exe redis.conf
4、启动cmd窗口要一直开着,关闭后则Redis服务关闭。
这时服务开启着,另外开一个窗口进行,设置客户端:
D:\redis-2.0.2>redis-cli.exe -h 202.117.16.133 -p 6379
然后可以开始玩了:
用phpinfo 查看到时TS vc9。那么下载的版本就对应好
2、解压缩之后得到两个文件,分别将两个文件复制到php 目录的 ext目录下。
3、修改php.ini文件。加入extension 扩展
extension=php_igbinary.dll
extension=php_redis.dll
4、 重启apache ,查看phpinfo 界面。如下则表示安装成功
5、phpredis hellow word 开始你的redis使用
$redis=new Redis(); //redis对象
$redis->connect("127.0.0.1","6379"); //连接redis服务器
$redis->set("test","Hello World"); //set字符串值
echo $redis->get("test");
?>
附:Redis类的一些属性及方法
a)连接redis server
connect :连接server
pconnect :长连接
auth :权限验证
select :选择DB
close : 关闭连接
setOption : 设置 client 选项
getOption : 获取client选项
ping : ping redis server
echo : 输出字符串
注意,如果频繁操作redis,不停地connect 和close会很耗性能的,这个时候,建议用pconnect 建立个长连接
b)字符串读写函数
append :在值的后面追加值
decr :递减一个key的值
incr :递增一个key的值
get :获取一个值
set :设置一个值
getSet :设置值,并返回老值
mGet :批量获取值
mSet :批量设置值
strlen :获取值长度
注意:如果能用批量操作尽量用批量,减少频繁连接redis数据库性能
c)hash读写函数
hDel :删除一个多个域
hExists :判断一个hash域是否存在
hGet :获取hash域的值
hGetAll :获取所有域值
hIncrBy :自增长一个hash int域的值
hKeys :获取hash 所有域
hLen :获取域个数
hMGet :批量获取域的值
hMSet :批量设置域的值
hSet :设置域的值
hVals:得到所有域的值
d)list读写函数
lInsert:插入元素
lLen:list长度
lPop:移除并获取第一个颜色
lPush:插入一个元素
lRem:移除元素
lSet:设置元素值
e)set
sAdd:增加一个或多个成员
sIsMember:是否包含
sMembers:得到成员
sMove:移动成员
sPop:移除成员
sRandMember:得到随机成员
sRem:删除
f)sorted set
zAdd:增加一个或多个
zCard:成员个数
zIncrBy:递增成员score
zRange:返回索引范围内的成员
zRangeByScore :返回score范围内的成员
zScore:获取成员score
zRem:移除一个或多个成员