Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。
Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。
phpredis作者https://github.com/nicolasff/phpredis 写了文档https://github.com/ukko/phpredis-phpdoc。
上面提到了如何让eclipse有自动提示功能:
Setup in Zend Studio IDE (Eclipse PDT)
- Open "Window" -> "Preferences"
- In preferences dialog open "PHP" -> "PHP Libriaries"
- Click "New" button, in "User library name" enter "Redis", click "OK"
- Select newly created "Redis", library Click "Add external folder", select path to the folder which contains your checkout of phpredis-phpdoc or you can download single "Redis.php" filehttps://raw.github.com/ukko/phpredis-phpdoc/master/src/Redis.php
- Include your custom library in your project: open "Project" -> "Properties" -> "PHP Include Path", click add library, select "User library", click "Next", check "Redis", click "Finish"
--------------------
本文是参考《redis中文手册》,将示例代码用php来实现,注意php-redis与redis_cli的区别(主要是返回值类型和参数用法)。
目录(使用CTRL+F快速查找命令):
Key | String | Hash | List | Set |
---|---|---|---|---|
Sorted Set | Pub/Sub | Transaction | Connection | Server |
---|---|---|---|---|
phpredis是redis的php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系
很有用;以下是redis官方提供的命令使用技巧:
下载地址如下:
https://github.com/owlient/phpredis
Redis::__construct构造函数
$redis = new Redis();
connect, open 链接redis服务
参数
host: string,服务地址
port: int,端口号
timeout: float,链接时长 (可选, 默认为 0 ,不限链接时间)
注: 在redis.conf中也有时间,默认为300
pconnect, popen 不会主动关闭的链接
参考上面
setOption 设置redis模式
getOption 查看redis设置的模式
ping 查看连接状态
KEY相关操作
DEL
移除给定的一个或多个key。
如果key不存在,则忽略该命令。
- 时间复杂度:
-
O(N),N为要移除的key的数量。移除单个字符串类型的key,时间复杂度为O(1)。移除单个列表、集合、有序集合或哈希表类型的key,时间复杂度为O(M),M为以上数据结构内的元素数量。
- 返回值:
- 被移除key的数量。
-
//DEL
# 情况1: 删除单个key
$redis->set('myname','ikodota');
echo $redis->get('myname').'<br>'; # 返回:ikodota $redis->del('myname');# 返回 TRUE(1)
var_dump($redis->get('myname')); # 返回 bool(false) # 情况2: 删除一个不存在的key
if(!$redis->exists('fake_key')) # 不存在
var_dump($redis->del('fake_key')); # 返回 int(0) # 情况3: 同时删除多个key
$array_mset=array('first_key'=>'first_val',
'second_key'=>'second_val',
'third_key'=>'third_val');
$redis->mset($array_mset); #用MSET一次储存多个值
$array_mget=array('first_key','second_key','third_key');
var_dump($redis->mget($array_mget)); #一次返回多个值 //array(3) { [0]=> string(9) "first_val" [1]=> string(10) "second_val" [2]=> string(9) "third_val" } $redis->del($array_mget); #同时删除多个key
var_dump($redis->mget($array_mget)); #返回 array(3) { [0]=> bool(false) [1]=> bool(false) [2]=> bool(false) } - 更多:http://www.cnblogs.com/ikodota/archive/2012/03/05/php_redis_cn.html