- 注册时间
- 2011-3-22
- 最后登录
- 2013-6-27
- 在线时间
- 11644 小时
- 阅读权限
- 150
- 积分
- 62779
- 帖子
- 28923
- 精华
- 1
- UID
- 6
|
Redis的函数的使用
Redis::__construct
说明:
创建一个Redis客户端
范例:
$redis = new Redis();
connect, open
说明:
实例连接到一个Redis.
参数:
Host:string,可以是一个host地址,也可以是一个unix socket
port: int
timeout: float 秒数,(可选参数,默认值为0代表不限制)
返回值:
BOOL 成功返回:TRUE;失败返回:FALSE
范例:
$redis->connect('127.0.0.1', 6379);
$redis->connect('127.0.0.1'); // port 6379 by default
$redis->connect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout.
$redis->connect('/tmp/redis.sock'); // unix domain socket.
pconnect, popen
说明:
实例连接到一个Redis.,或者连接到一个已经通过pconnect/popen创建的连接上。
连接直到遇到close或者php进程结束才会被关闭。
参数:
host: string
port: int
timeout: float
persistent_id: string 持久链接的身份验证
返回值:
BOOL 成功返回:TRUE;失败返回:FALSE
范例:
$redis->pconnect('127.0.0.1', 6379);
$redis->pconnect('127.0.0.1'); // port 6379 by default - same connection like before.
$redis->pconnect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout and would be another connection than the two before.
$redis->pconnect('127.0.0.1', 6379, 2.5, 'x'); // x is sent as persistent_id and would be another connection the the three before.
$redis->pconnect('/tmp/redis.sock'); // unix domain socket - would be another connection than the four before.
close
说明:
断开一个Redis实例连接,除非他是通过pconnect 链接的。
setOption
说明:
创建客户端选项。
参数:
Name
Value
返回值:
BOOL 成功返回:TRUE;失败返回:FALSE
范例:
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); // don't serialize data
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP); // use built-in serialize/unserialize
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY); // use igBinary serialize/unserialize
$redis->setOption(Redis::OPT_PREFIX, 'myAppName:'); // use custom prefix on all keys
getOption
获得客户端选项
参数:
Name
返回值:
Value
范例:
$redis->getOption(Redis::OPT_SERIALIZER); // return Redis::SERIALIZER_NONE, Redis::SERIALIZER_PHP, or Redis::SERIALIZER_IGBINARY.
ping
说明:
检查当前的连接状态。
参数:
无
返回值:
STRING:PONG 失败则会返回一个Redis抛出的连接异常。
get
说明:
获得一个指定的key的值。
参数:
Key
返回值:
String or Bool: 如果值存在则返回值,否则返回false。
范例:
$redis->get('key');
set
说明:
创建一个值
参数:
Key
Value
Timeout (可选)可以在一定的timeout时间内让SETEX 优先调用。
返回值:
成功返回true
范例:
$redis->set('key', 'value');
setex
说明:
创建一个有一定存活时间的值
参数:
Key TTL Value
返回值:
成功返回true
范例:
$redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL.
setnx
如果key的值不存在,则创建key的值为value
参数:
Key
Value
返回值:
成功返回true 失败返回false
范例:
$redis->setnx('key', 'value'); /* return TRUE */
$redis->setnx('key', 'value'); /* return FALSE */
del, delete
说明:
删除一个指定的key的值
参数:
可以是一个数组,也可以是一个多个字符串。
返回值:
成功删除的个数
范例:
$redis->set('key1', 'val1');
$redis->set('key2', 'val2');
$redis->set('key3', 'val3');
$redis->set('key4', 'val4');
$redis->delete('key1', 'key2'); /* return 2 */
$redis->delete(array('key3', 'key4')); /* return 2 */
multi, exec, discard.
说明:
进入或者退出事务模式
参数:
(可选)
Redis::MULTI或Redis:IPELINE. 默认是 Redis::MULTI
Redis::MULTI:将多个操作当成一个事务执行
Redis:IPELINE:让(多条)执行命令简单的,更加快速的发送给服务器,但是没有任何原子性的保证
discard:删除一个事务
返回值:
multi(),返回一个redis对象,并进入multi-mode模式,一旦进入multi-mode模式,以后调用的所有方法都会返回相同的对象,只到exec()方法被调用。
范例:
$ret = $redis->multi()
->set('key1', 'val1')
->get('key1')
->set('key2', 'val2')
->get('key2')
->exec();
/*
$ret == array(
0 => TRUE,
1 => 'val1',
2 => TRUE,
3 => 'val2');
*/
watch, unwatch
说明:
监测一个key的值是否被其它的程序更改。如果这个key在watch 和 exec (方法)间被修改,这个 MULTI/EXEC 事务的执行将失败(return false)
unwatch 取消被这个程序监测的所有key
参数:
Keys:一对key的列表
范例:
$redis->watch('x');
/* long code here during the execution of which other clients could well modify `x` */
$ret = $redis->multi()
->incr('x')
->exec();
/*
$ret = FALSE if x has been modified between the call to WATCH and the call to EXEC.
*/
subscribe
说明:
方法回调。注意,该方法可能在未来里发生改变
参数:
channels: array
callback: 回调函数名
范例:
function f($redis, $chan, $msg) {
switch($chan) {
case 'chan-1':
...
break;
case 'chan-2':
...
break;
case 'chan-2':
...
break;
}
}
$redis->subscribe(array('chan-1', 'chan-2', 'chan-3'), 'f'); // subscribe to 3 chans
|
|