设为首页收藏本站

Scripts 学盟

 找回密码
 加入学盟

QQ登录

只需一步,快速开始

查看: 1783|回复: 3
打印 上一主题 下一主题

Redis的函数的使用(一) [复制链接]

Rank: 8Rank: 8

跳转到指定楼层
1#
那个谁 发表于 2012-2-18 10:40:14 |只看该作者 |倒序浏览

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

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0

管理员

超级大菜鸟

Rank: 9Rank: 9Rank: 9

2#
混混@普宁.中国 实名认证  发表于 2012-2-18 12:47:30 |只看该作者
这是   php 么 ?

使用道具 举报

Rank: 8Rank: 8

3#
那个谁 发表于 2012-2-20 10:04:01 |只看该作者
混混@普宁.中国 发表于 2012-2-18 12:47
这是   php 么 ?

是一种 NoSQL 数据库  这个版本是Linux版的。支持很多客户端,比如Java php 等等。

使用道具 举报

管理员

超级大菜鸟

Rank: 9Rank: 9Rank: 9

4#
混混@普宁.中国 实名认证  发表于 2012-2-21 09:35:38 |只看该作者
哦哦, 杰管,你能不能不要学这么多。。。

使用道具 举报

您需要登录后才可以回帖 登录 | 加入学盟

手机版|Scripts 学盟   |

GMT+8, 2024-4-29 14:05 , Processed in 1.094098 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部