Scripts 学盟

标题: Redis函数使用(三) [打印本页]

作者: 那个谁    时间: 2012-2-18 10:42:18     标题: Redis函数使用(三)


lPushx
说明:
在名称为key的list左边(头)添加一个值为value的 元素,如果这个value存在则不添加。

参数:
Key

Value

返回值:
返回key值得长度。

范例:
$redis->delete('key1');
$redis->lPushx('key1', 'A'); // returns 0
$redis->lPush('key1', 'A'); // returns 1
$redis->lPushx('key1', 'B'); // returns 2
$redis->lPushx('key1', 'C'); // returns 3
/* key1 now points to the following list: [ 'A', 'B', 'C' ] */
rPushx
说明:
在名称为key的list右边(尾)添加一个值为value的 元素,如果这个value存在则不添加。

参数:
Key

Value

返回值:
返回key值得长度。

范例:
$redis->delete('key1');
$redis->rPushx('key1', 'A'); // returns 0
$redis->rPush('key1', 'A'); // returns 1
$redis->rPushx('key1', 'B'); // returns 2
$redis->rPushx('key1', 'C'); // returns 3
/* key1 now points to the following list: [ 'A', 'B', 'C' ] */
lPop
说明:
输出名称为key的list左(头)起起的第一个元素,删除该元素

参数:
Key

返回值:
失败返回false
范例:
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->lPop('key1'); /* key1 => [ 'B', 'C' ] */
rPop
说明:
输出名称为key的list右(尾)起起的第一个元素,删除该元素

参数:
Key

返回值:
失败返回false
范例:
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->rPop('key1'); /* key1 => [ 'A', 'B' ] */
blPop, brPop
说明:
lpop命令的block版本。即当timeout为0时,若遇到名称为key 的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对key+1开始的list执行pop操作
参数:
Key
Timeout
返回值:
Array array('listName', 'element')
范例:
/* Non blocking feature */
$redis->lPush('key1', 'A');
$redis->delete('key2');

$redis->blPop('key1', 'key2', 10); /* array('key1', 'A') */
/* OR */
$redis->blPop(array('key1', 'key2'), 10); /* array('key1', 'A') */

$redis->brPop('key1', 'key2', 10); /* array('key1', 'A') */
/* OR */
$redis->brPop(array('key1', 'key2'), 10); /* array('key1', 'A') */

/* Blocking feature */

/* process 1 */
$redis->delete('key1');
$redis->blPop('key1', 10);
/* blocking for 10 seconds */

/* process 2 */
$redis->lPush('key1', 'A');

/* process 1 */
/* array('key1', 'A') is returned*/
lSize
说明:
返回这个key值list的个数,如果这个list不存在或为空,则返回0,如果这个值得类型并不是一个list则返回false。
参数:
Key

返回值:
Long or bool

范例:
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->lSize('key1');/* 3 */
$redis->rPop('key1');
$redis->lSize('key1');/* 2 */
lIndex, lGet
说明:
返回名称为key的list中index位置的元素,0代表第一个,1代表第二个,-1代表最后一个,-2代表倒数第二个,当这个key值不存在于list中时,返回false。

参数:
key index

返回值:
String or false

范例:
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->lGet('key1', 0); /* 'A' */
$redis->lGet('key1', -1); /* 'C' */
$redis->lGet('key1', 10); /* `FALSE` */
lSet
说明:
设置名称为key的list中index位置的元素赋值为value


参数:
Key

Index

Value



返回值:
Bool 成功返回true 失败返回false

范例:
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->lGet('key1', 0); /* 'A' */
$redis->lSet('key1', 0, 'X');
$redis->lGet('key1', 0); /* 'X' */
lRange, lGetRange
说明:
返回名称为key的list中start至end之间的元素(end为 -1 ,返回所有)

参数:
Key

Start

End
返回值:
Array

范例:
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C');
$redis->lRange('key1', 0, -1); /* array('A', 'B', 'C') */
lTrim, listTrim
说明:
截取名称为key的list,保留start至end之间的元素

参数:
Key

Start

Stop

返回值:
Array

范例:
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C');
$redis->lRange('key1', 0, -1); /* array('A', 'B', 'C') */
$redis->lTrim('key1', 0, 1);
$redis->lRange('key1', 0, -1); /* array('A', 'B') */


lRem, lRemove
说明:
从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。

参数:
key
value
count

返回值:
LONG  or bool

范例:


$redis->lPush('key1', 'A');
$redis->lPush('key1', 'B');
$redis->lPush('key1', 'C');
$redis->lPush('key1', 'A');
$redis->lPush('key1', 'A');

$redis->lRange('key1', 0, -1); /* array('A', 'A', 'C', 'B', 'A') */
$redis->lRem('key1', 'A', 2); /* 2 */
$redis->lRange('key1', 0, -1); /* array('C', 'B', 'A') */


lInsert
说明:
在名称为key的list中,找到值为pivot 的value,并根据参数Redis::BEFORE | Redis::AFTER,来确定,newvalue 是放在 pivot 的前面,或者后面。如果key不存在,不会插入,如果 pivot不存在,return -1

参数:
key position Redis::BEFORE | Redis::AFTER pivot value

返回值:
返回这个list的长度

如果pivot 不存在 返回-1

范例:
$redis->delete('key1');
$redis->lInsert('key1', Redis::AFTER, 'A', 'X'); /* 0 */

$redis->lPush('key1', 'A');
$redis->lPush('key1', 'B');
$redis->lPush('key1', 'C');

$redis->lInsert('key1', Redis::BEFORE, 'C', 'X'); /* 4 */
$redis->lRange('key1', 0, -1); /* array('A', 'B', 'X', 'C') */

$redis->lInsert('key1', Redis::AFTER, 'C', 'Y'); /* 5 */
$redis->lRange('key1', 0, -1); /* array('A', 'B', 'X', 'C', 'Y') */

$redis->lInsert('key1', Redis::AFTER, 'W', 'value'); /* -1 */
sAdd
说明:
向名称为key的set中添加元素value,如果value存在,不写入,return false

参数:
key

value

返回值:
Bool 成功返回true 失败或已存在value值则返回false

范例:
$redis->sAdd('key1' , 'set1'); /* TRUE, 'key1' => {'set1'} */
$redis->sAdd('key1' , 'set2'); /* TRUE, 'key1' => {'set1', 'set2'}*/
$redis->sAdd('key1' , 'set2'); /* FALSE, 'key1' => {'set1', 'set2'}*/





欢迎光临 Scripts 学盟 (http://www.iscripts.org/) Powered by Discuz! X2