SSDB PHP程序api文檔

2019-02-18 14:26 更新

幫助改進(jìn)此文檔

SSDB PHP 客戶端 API 文檔

@作者: ideawu
@更新: 2014-11-05

SSDB 是一個(gè)高性能 NoSQL 數(shù)據(jù)庫, 支持 zset 數(shù)據(jù)結(jié)構(gòu), 用于替代 Redis. 官方網(wǎng)站是 http://ssdb.io. 本文檔介紹了 SSDB 的 PHP 客戶端 API.

注意: SSDB 所使用的名詞 "hashmap", "hash", "map" 表示相同的意思.

類 SimpleSSDB

快速開始

<?php
include_once('SSDB.php');
try{
    $ssdb = new SimpleSSDB('127.0.0.1', 8888);
}catch(SSDBException $e){
    die(LINE . ' ' . $e->getMessage());
}
$ret = $ssdb->set('key', 'value');
if($ret === false){
    // error!
}
echo $ssdb->get('key');

錯(cuò)誤處理

如果無法連接到 SSDB 服務(wù)器, SimpleSSDB 將拋出異常. 大多數(shù)的方法(除了少數(shù)幾個(gè)例外)通過返回 false 來標(biāo)明出錯(cuò). 所以要使用強(qiáng)制等于(===)來判斷返回值.

如果出現(xiàn)網(wǎng)絡(luò)錯(cuò)誤, 所有的方法將會(huì)拋出 SSDBException 異常.

注意: 因?yàn)閷?shí)現(xiàn)的原因, 請(qǐng)保證所有的參數(shù)加起來不超過 10MB 大小.

方法

SimpleSSDB::__construct

說明

創(chuàng)建 SimpleSSDB 的實(shí)例, 并連接到 SSDB 服務(wù)器. 如果無法連接到服務(wù)器, 將拋出異常.

參數(shù)

host - SSDB 服務(wù)器的主機(jī)名或者 IP.
port - SSDB 服務(wù)器的端口號(hào).
timeout_ms - 可選, 連接超時(shí)時(shí)間, 和發(fā)送接收數(shù)據(jù)的超時(shí)時(shí)間, 單位毫秒. 默認(rèn)是 2000 ms.

返回值

SimpleSSDB 的實(shí)例.

示例

$ssdb = new SimpleSSDB('127.0.0.1', 8888);

auth

Since: 1.7.0.0

說明

配置密碼, 之后將用于向服務(wù)器校驗(yàn). 這個(gè)校驗(yàn)不是立即進(jìn)行的, 而是等你執(zhí)行第一條命令的時(shí)候才發(fā)給服務(wù)器. 注意, 密碼是明文傳輸?shù)?

參數(shù)

password -

返回值

出錯(cuò)則返回 false, 否則返回 null.

示例

$ssdb->auth('very-strong-password');

set

說明

設(shè)置指定 key 的值內(nèi)容.

參數(shù)

key -
value -

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->set('key', 'value');

setx

說明

設(shè)置指定 key 的值內(nèi)容, 同時(shí)設(shè)置存活時(shí)間.

參數(shù)

key -
value -
ttl - 存活時(shí)間(秒)

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->setx('key', 'value', 60);

setnx

說明

當(dāng) key 不存在時(shí), 設(shè)置指定 key 的值內(nèi)容. 如果已存在, 則不設(shè)置.

參數(shù)

key -
value -

返回值

出錯(cuò)則返回 false, 1: value 已經(jīng)設(shè)置, 0: key 已經(jīng)存在, 不更新.

示例

$ssdb->setnx('key', 'value');

expire

說明

設(shè)置 key(只針對(duì) KV 類型) 的存活時(shí)間.

參數(shù)

key -
ttl - 存活時(shí)間(秒)

返回值

出錯(cuò)則返回 false. 如果 key 存在并設(shè)置成功, 返回 1, 如果 key 不存在, 返回 0.

示例

$ssdb->expire('key', 60);

ttl

說明

返回 key(只針對(duì) KV 類型) 的存活時(shí)間.

參數(shù)

key -

返回值

出錯(cuò)則返回 false, 否則返回 key 的存活時(shí)間(秒), -1 表示沒有設(shè)置存活時(shí)間.

示例

$ssdb->ttl('key');

get

說明

獲取指定 key 的值內(nèi)容.

參數(shù)

key -

返回值

如果 key 不存在則返回 null, 如果出錯(cuò)則返回 false, 否則返回 key 對(duì)應(yīng)的值內(nèi)容.

示例

$ssdb->get('key');

getset

說明

更新 key 對(duì)應(yīng)的 value, 并返回更新前的舊的 value.

參數(shù)

key -
value -

返回值

如果 key 不存在則返回 null, 如果出錯(cuò)則返回 false, 否則返回 key 對(duì)應(yīng)的值內(nèi)容.

示例

$ssdb->getset('key', 'value');

del

說明

刪除指定的 key.

參數(shù)

key -

返回值

如果出錯(cuò)則返回 false, 其它值表示正常. 你無法通過返回值來判斷被刪除的 key 是否存在.

示例

$ssdb->del('key');

incr

從 1.7.0.1 起, 如果 value 不能轉(zhuǎn)換成整數(shù), incr 會(huì)返回錯(cuò)誤.

說明

使 key 對(duì)應(yīng)的值增加 num. 參數(shù) num 可以為負(fù)數(shù). 如果原來的值不是整數(shù)(字符串形式的整數(shù)), 它會(huì)被先轉(zhuǎn)換成整數(shù).

參數(shù)

key -
num - 可選, 必須是有符號(hào)整數(shù), 默認(rèn)是 1.

返回值

如果出錯(cuò)則返回 false, 否則返回新的值.

示例

$ssdb->incr('key', 1);

exists

說明

判斷指定的 key 是否存在.

參數(shù)

key -

返回值

如果存在, 返回 true, 否則返回 false.

示例

$ssdb->exists('key');

getbit

說明

獲取字符串內(nèi)指定位置的位值(BIT).

參數(shù)

key -
offset - 位偏移

返回值

返回位值(0 或 1), 如果 key 不存在或者偏移超過活字符串長(zhǎng)度范圍, 返回 0.

示例

$ssdb->getbit('key', 9);

setbit

說明

設(shè)置字符串內(nèi)指定位置的位值(BIT), 字符串的長(zhǎng)度會(huì)自動(dòng)擴(kuò)展.

參數(shù)

key -
offset - 位偏移, 取值范圍 [0, 1073741824]
val - 0 或 1

返回值

返回原來的位值. 如果 val 不是 0 或者 1, 返回 false.

示例

$ssdb->setbit('key', 9, 1);

bitcount

說明

計(jì)算字符串的子串所包含的位值為 1 的個(gè)數(shù). 若 start 是負(fù)數(shù), 則從字符串末尾算起. 若 end 是負(fù)數(shù), 則表示從字符串末尾算起(包含). 類似 Redis 的 bitcount

參數(shù)

key -
start - 可選, 子串的字節(jié)偏移
end - 可選

返回值

返回位值為 1 的個(gè)數(shù). 出錯(cuò)返回 false.

示例

$ssdb->bitcount('key', 2, 10);

countbit

說明

計(jì)算字符串的子串所包含的位值為 1 的個(gè)數(shù). 若 start 是負(fù)數(shù), 則從字符串末尾算起. 若 size 是負(fù)數(shù), 則表示從字符串末尾算起, 忽略掉那么多字節(jié).

參數(shù)

key -
start - 可選, 子串的字節(jié)偏移
size - 可選, 子串的長(zhǎng)度(字節(jié)數(shù)), 默認(rèn)為到字符串最后一個(gè)字節(jié)

返回值

返回位值為 1 的個(gè)數(shù). 出錯(cuò)返回 false.

示例

$ssdb->countbit('key', 2, 10);

substr

說明

獲取字符串的子串. 若 start 是負(fù)數(shù), 則從字符串末尾算起. 若 size 是負(fù)數(shù), 則表示從字符串末尾算起, 忽略掉那么多字節(jié)(類似 PHP 的 substr()).

參數(shù)

key -
start - 可選, int, 子串的字節(jié)偏移
size - 可選, int, 子串的長(zhǎng)度(字節(jié)數(shù)), 默認(rèn)為到字符串最后一個(gè)字節(jié)

返回值

字符串的子串.

示例

$ssdb->substr('key', 2, 10);

strlen

說明

計(jì)算字符串的長(zhǎng)度(字節(jié)數(shù)).

參數(shù)

key -

返回值

返回字符串的長(zhǎng)度, key 不存在則返回 0.

示例

$ssdb->strlen('key');

keys/rkeys

說明

列出處于區(qū)間 (key_start, key_end] 的 key 列表.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

key_start - 返回的起始 key(不包含), 空字符串表示 -inf.
key_end - 返回的結(jié)束 key(包含), 空字符串表示 +inf.
limit - 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key 的數(shù)組.

示例

$ssdb->keys('a', 'z', 10);

scan

說明

列出處于區(qū)間 (key_start, key_end] 的 key-value 列表.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

key_start - 返回的起始 key(不包含), 空字符串表示 -inf.
key_end - 返回的結(jié)束 key(包含), 空字符串表示 +inf.
limit - 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-value 的數(shù)關(guān)聯(lián)組.

示例

$ssdb->scan('a', 'z', 10);
遍歷 key-value 對(duì)列表
$start = ''; 
$limit = 1000;
while(1){
    $kvs = $ssdb->scan($start, '', $limit);
    if(!$kvs){
        break;
    }
    // do something on key-value pairs...
    $keys = array_keys(array_slice($kvs, -1, 1, true));
    $max_key = $keys[0];
    $start = $max_key;
}

rscan

說明

列出處于區(qū)間 (key_start, key_end] 的 key-value 列表, 反向順序.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

key_start - 返回的起始 key(不包含), 空字符串表示 +inf.
key_end - 返回的結(jié)束 key(包含), 空字符串表示 -inf.
limit - 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-value 的數(shù)關(guān)聯(lián)組.

示例

$ssdb->rscan('a', 'z', 10);

multi_set

說明

批量設(shè)置一批 key-value.

參數(shù)

kvs - 包含 key-value 的關(guān)聯(lián)數(shù)組 .

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->multi_set(array(
    'a' => 1,
    'b' => 2,
));

multi_get

說明

批量獲取一批 key 對(duì)應(yīng)的值內(nèi)容.

參數(shù)

keys - 包含 key 的數(shù)組 .

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-value 的關(guān)聯(lián)數(shù)組, 如果某個(gè) key 不存在, 則它不會(huì)出現(xiàn)在返回?cái)?shù)組中.

示例

$ssdb->multi_get(array('k1', 'k2'));

multi_del

說明

批量刪除一批 key 和其對(duì)應(yīng)的值內(nèi)容.

參數(shù)

keys - 包含 key 的數(shù)組 .

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->multi_del(array('k1', 'k2'));

hset

說明

設(shè)置 hashmap 中指定 key 對(duì)應(yīng)的值內(nèi)容.

參數(shù)

name - hashmap 的名字.
key - hashmap 中的 key.
value - key 對(duì)應(yīng)的值內(nèi)容.

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->hset('h', 'key', 'value');

hget

說明

獲取 hashmap 中指定 key 的值內(nèi)容.

參數(shù)

name - hashmap 的名字.
key - hashmap 中的 key.

返回值

如果 key 不存在則返回 null, 如果出錯(cuò)則返回 false, 否則返回 key 對(duì)應(yīng)的值內(nèi)容.

示例

$ssdb->hget('h', 'key');

hdel

說明

獲取 hashmap 中的指定 key.

參數(shù)

name - hashmap 的名字.
key - hashmap 中的 key.

返回值

如果出錯(cuò)則返回 false, 其它值表示正常. 你無法通過返回值來判斷被刪除的 key 是否存在.

示例

$ssdb->hdel('h', 'key');

hincr

從 1.7.0.1 起, 如果 value 不能轉(zhuǎn)換成整數(shù), incr 會(huì)返回錯(cuò)誤.

說明

使 hashmap 中的 key 對(duì)應(yīng)的值增加 num. 參數(shù) num 可以為負(fù)數(shù). 如果原來的值不是整數(shù)(字符串形式的整數(shù)), 它會(huì)被先轉(zhuǎn)換成整數(shù).

參數(shù)

name - hashmap 的名字.
key -
num - 可選, 必須是有符號(hào)整數(shù), 默認(rèn)是 1.

返回值

如果出錯(cuò)則返回 false, 否則返回新的值.

示例

$ssdb->hincr('h', 'key', 1);

hexists

說明

判斷指定的 key 是否存在于 hashmap 中.

參數(shù)

name - hashmap 的名字.
key -

返回值

如果存在, 返回 true, 否則返回 false.

示例

$ssdb->hexists('h', 'key');

hsize

說明

返回 hashmap 中的元素個(gè)數(shù).

參數(shù)

name - hashmap 的名字.

返回值

出錯(cuò)則返回 false, 否則返回元素的個(gè)數(shù), 0 表示不存在 hashmap(空).

示例

$ssdb->hsize('h');

hlist, hrlist

說明

列出名字處于區(qū)間 (name_start, name_end] 的 hashmap.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

name_start - 返回的起始名字(不包含), 空字符串表示 -inf.
name_end - 返回的結(jié)束名字(包含), 空字符串表示 +inf.
limit - 最多返回這么多個(gè)元素.

返回值

出錯(cuò)則返回 false, 返回返回包含名字的數(shù)組.

示例

$ssdb->hlist('a', 'z', 10);

hkeys

說明

列出 hashmap 中處于區(qū)間 (key_start, key_end] 的 key 列表.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

name - hashmap 的名字.
key_start - 起始 key(不包含), 空字符串表示 -inf.
key_end - 結(jié)束 key(包含), 空字符串表示 +inf.
limit - 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key 的數(shù)組.

示例

$ssdb->hkeys('h', 'a', 'z', 10);

hgetall

說明

返回整個(gè) hashmap.

參數(shù)

name - hashmap 的名字.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-value 的關(guān)聯(lián)數(shù)組.

示例

$ssdb->hgetall('h');

hscan

說明

列出 hashmap 中處于區(qū)間 (key_start, key_end] 的 key-value 列表.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

name - hashmap 的名字.
key_start - 返回的起始 key(不包含), 空字符串表示 -inf.
key_end - 返回的結(jié)束 key(包含), 空字符串表示 +inf.
limit - 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-value 的關(guān)聯(lián)數(shù)組.

示例

$ssdb->hscan('h', 'a', 'z', 10);

遍歷 hash:

$start = '';
while(1){
    $kvs = $ssdb->hscan($name, $start, '', 10);
    if(!$kvs){
        break;
    }
    // do sth on kvs here
$keys = array_keys($kvs);
$start = $keys[count($keys) - 1];

}

hrscan

說明

列出 hashmap 中處于區(qū)間 (key_start, key_end] 的 key-value 列表, 反向順序.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

name - hashmap 的名字.
key_start - 返回的起始 key(不包含), 空字符串表示 +inf.
key_end - 返回的結(jié)束 key(包含), 空字符串表示 -inf.
limit - 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-score 的關(guān)聯(lián)數(shù)組.

示例

$ssdb->hrscan('h', 'a', 'z', 10);

hclear

說明

刪除 hashmap 中的所有 key.

參數(shù)

name - hashmap 的名字.

返回值

如果出錯(cuò)則返回 false, 否則返回刪除的 key 的數(shù)量.

示例

$ssdb->hclear('h');

multi_hset

說明

批量設(shè)置 hashmap 中的 key-value.

參數(shù)

name - hashmap 的名字.
kvs - 包含 key-value 的關(guān)聯(lián)數(shù)組 .

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->multi_hset('h', array(
    'a' => 1,
    'b' => 2,
));

multi_hget

說明

批量獲取 hashmap 中多個(gè) key 對(duì)應(yīng)的權(quán)重值.

參數(shù)

name - hashmap 的名字.
keys - 包含 key 的數(shù)組 .

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-value 的關(guān)聯(lián)數(shù)組, 如果某個(gè) key 不存在, 則它不會(huì)出現(xiàn)在返回?cái)?shù)組中.

示例

$ssdb->multi_hget('h', array('k1', 'k2'));

multi_hdel

說明

批量刪除 hashmap 中的 key.

參數(shù)

name - hashmap 的名字.
keys - 包含 key 的數(shù)組 .

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->multi_hdel('h', array('k1', 'k2'));

zset

說明

設(shè)置 zset 中指定 key 對(duì)應(yīng)的權(quán)重值.

參數(shù)

name - zset 的名字.
key - zset 中的 key.
score - 整數(shù), key 對(duì)應(yīng)的權(quán)重值

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->zset('z', 'key', 100);

zget

說明

獲取 zset 中指定 key 的權(quán)重值.

參數(shù)

name - zset 的名字.
key - zset 中的 key.

返回值

如果 key 不存在則返回 null, 如果出錯(cuò)則返回 false, 否則返回 key 對(duì)應(yīng)的權(quán)重值.

示例

$ssdb->zget('z', 'key');

zdel

說明

獲取 zset 中的指定 key.

參數(shù)

name - zset 的名字.
key - zset 中的 key.

返回值

如果出錯(cuò)則返回 false, 其它值表示正常. 你無法通過返回值來判斷被刪除的 key 是否存在.

示例

$ssdb->zdel('hz, 'key');

zincr

說明

使 zset 中的 key 對(duì)應(yīng)的值增加 num. 參數(shù) num 可以為負(fù)數(shù). 如果原來的值不是整數(shù)(字符串形式的整數(shù)), 它會(huì)被先轉(zhuǎn)換成整數(shù).

參數(shù)

name - zset 的名字.
key -
num - 必須是有符號(hào)整數(shù).

返回值

如果出錯(cuò)則返回 false, 否則返回新的值.

示例

$ssdb->zincr('z', 'key', 1);

zexists

說明

判斷指定的 key 是否存在于 zset 中.

參數(shù)

name - zset 的名字.
key -

返回值

如果存在, 返回 true, 否則返回 false.

示例

$ssdb->zexists('z', 'key');

zsize

說明

返回 zset 中的元素個(gè)數(shù).

參數(shù)

name - zset 的名字.

返回值

出錯(cuò)則返回 false, 否則返回元素的個(gè)數(shù), 0 表示不存在 zset(空).

示例

$ssdb->zsize('z');

zlist, zrlist

說明

列出名字處于區(qū)間 (name_start, name_end] 的 zset.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

name_start - 返回的起始名字(不包含), 空字符串表示 -inf.
name_end - 返回的結(jié)束名字(包含), 空字符串表示 +inf.
limit - 最多返回這么多個(gè)元素.

返回值

出錯(cuò)則返回 false, 否則返回包含名字的數(shù)組.

示例

$ssdb->zlist('a', 'z', 10);

zkeys

說明

列出 zset 中的 key 列表. 參見 zscan().

參數(shù)

name - zset 的名字.
key_start - 參見 zscan().
score_start - 參見 zscan().
score_end - 參見 zscan().
limit - 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key 的數(shù)組.

示例

$ssdb->zkeys('z', '', 1, 100, 10);

zscan

說明

列出 zset 中處于區(qū)間 (key_start+score_start, score_end] 的 key-score 列表. 如果 key_start 為空, 那么對(duì)應(yīng)權(quán)重值大于或者等于 score_start 的 key 將被返回. 如果 key_start 不為空, 那么對(duì)應(yīng)權(quán)重值大于 score_start 的 key, 或者大于 key_start 且對(duì)應(yīng)權(quán)重值等于 score_start 的 key 將被返回.

也就是說, 返回的 key 在 (key.score == score_start && key > key_start || key.score > score_start), 并且 key.score <= score_end 區(qū)間. 先判斷 score_start, score_end, 然后判斷 key_start.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

name - zset 的名字.
key_start - score_start 對(duì)應(yīng)的 key.
score_start - 返回 key 的最小權(quán)重值(可能不包含, 依賴 key_start), 空字符串表示 -inf.
score_end - 返回 key 的最大權(quán)重值(包含), 空字符串表示 +inf.
limit - 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-score 的關(guān)聯(lián)數(shù)組.

示例

$ssdb->zscan('z', '', 1, 100, 10);

遍歷 zset:

$key_start = ''; 
$score_start = ''; 
while(1){
    $items = $ssdb->zscan($zname, $key_start, $score_start, '', 10);
    if(!$items){
        break;
    }
    foreach($items as $key=>$score){
        // process($key, $score)...
    // 記住最大的元素和它的權(quán)重
    $key_start = $key;
    $score_start = $score;
}   

}

zrscan

說明

列出 zset 中的 key-score 列表, 反向順序. 參見 zkeys().

參數(shù)

name - zset 的名字.
key_start - 參見 zkeys().
score_start - 參見 zkeys().
score_end - 參見 zkeys().
limit - 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-score 的關(guān)聯(lián)數(shù)組.

示例

$ssdb->zrscan('z', '', 100, 1, 10);

zrank, zrrank

說明

注意! 本方法可能會(huì)非常慢! 請(qǐng)?jiān)陔x線環(huán)境中使用.

返回指定 key 在 zset 中的排序位置(排名), 排名從 0 開始. zrrank 獲取是是倒序排名.

參數(shù)

name - zset 的名字.
key -

返回值

found.

出錯(cuò)則返回 false, null 表示 key 不存在于 zset, 否則返回排名.

示例

$ssdb->zrank('z', 'k1');

zrange, zrrange

說明

注意! 本方法在 offset 越來越大時(shí), 會(huì)越慢!

根據(jù)下標(biāo)索引區(qū)間 [offset, offset + limit) 獲取 key-score 對(duì), 下標(biāo)從 0 開始. zrrange 是反向順序獲取.

參數(shù)

name - zset 的名字.
offset - 正整數(shù), 從此下標(biāo)處開始返回. 從 0 開始.
limit - 正整數(shù), 最多返回這么多個(gè) key-score 對(duì).

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-score 的關(guān)聯(lián)數(shù)組.

示例

$ssdb->zrange('z', 0, 10);

zclear

說明

刪除 zset 中的所有 key.

參數(shù)

name - zset 的名字.

返回值

如果出錯(cuò)則返回 false, 否則返回刪除的 key 的數(shù)量.

示例

$ssdb->zclear('z');

zcount

說明

返回處于區(qū)間 [start,end] key 數(shù)量.

參數(shù)

name - zset 的名字.
score_start - key 的最小權(quán)重值(包含), 空字符串表示 -inf.
score_end - key 的最大權(quán)重值(包含), 空字符串表示 +inf.

返回值

如果出錯(cuò)則返回 false, 否則返回符合條件的 key 的數(shù)量.

示例

$ssdb->zcount('z', 0, 100);

zsum

說明

返回 key 處于區(qū)間 [start,end] 的 score 的和.

參數(shù)

name - zset 的名字.
score_start - key 的最小權(quán)重值(包含), 空字符串表示 -inf.
score_end - key 的最大權(quán)重值(包含), 空字符串表示 +inf.

返回值

如果出錯(cuò)則返回 false, 否則返回符合條件的 score 的求和.

示例

$ssdb->zsum('z', 0, 100);

zavg

說明

返回 key 處于區(qū)間 [start,end] 的 score 的平均值.

參數(shù)

name - zset 的名字.
score_start - key 的最小權(quán)重值(包含), 空字符串表示 -inf.
score_end - key 的最大權(quán)重值(包含), 空字符串表示 +inf.

返回值

如果出錯(cuò)則返回 false, 否則返回符合條件的 score 的平均值.

示例

$ssdb->zavg('z', 0, 100);

zremrangebyrank

說明

刪除位置處于區(qū)間 [start,end] 的元素.

參數(shù)

name - zset 的名字.
start - (包含).
end -(包含).

返回值

出錯(cuò)則返回 false, 否則返回被刪除的元素個(gè)數(shù).

示例

$ssdb->zremrangebyrank('z', 1, 2);

zremrangebyscore

說明

刪除權(quán)重處于區(qū)間 [start,end] 的元素.

參數(shù)

name - zset 的名字.
start - (包含).
end -(包含).

返回值

出錯(cuò)則返回 false, 否則返回被刪除的元素個(gè)數(shù).

示例

$ssdb->zremrangebyscore('z', 1, 2);

zpop_front

說明

從 zset 首部刪除并返回 limit 個(gè)元素.

參數(shù)

name - zset 的名字.
limit - 正整數(shù), 最多要?jiǎng)h除并返回這么多個(gè) key-score 對(duì).

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-score 的關(guān)聯(lián)數(shù)組.

示例

$ssdb->zpop_front('z', 3);

zpop_back

說明

從 zset 尾部刪除并返回 limit 個(gè)元素.

參數(shù)

name - zset 的名字.
limit - 正整數(shù), 最多要?jiǎng)h除并返回這么多個(gè) key-score 對(duì).

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-score 的關(guān)聯(lián)數(shù)組.

示例

$ssdb->zpop_back('z', 3);

multi_zset

說明

批量設(shè)置 zset 中的 key-score.

參數(shù)

name - zset 的名字.
kvs - 包含 key-score 的關(guān)聯(lián)數(shù)組 .

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->multi_zset('z', array(
    'a' => 1,
    'b' => 2,
));

multi_zget

說明

批量獲取 zset 中多個(gè) key 對(duì)應(yīng)的權(quán)重值.

參數(shù)

name - zset 的名字.
keys - 包含 key 的數(shù)組 .

返回值

如果出錯(cuò)則返回 false, 否則返回包含 key-score 的關(guān)聯(lián)數(shù)組, 如果某個(gè) key 不存在, 則它不會(huì)出現(xiàn)在返回?cái)?shù)組中.

示例

$ssdb->multi_zget('z', array('k1', 'k2'));

multi_zdel

說明

批量刪除 zset 中的 key.

參數(shù)

name - zset 的名字.
keys - 包含 key 的數(shù)組 .

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->multi_zdel('z', array('k1', 'k2'));

qsize

說明

返回隊(duì)列的長(zhǎng)度.

參數(shù)

name -

返回值

出錯(cuò)返回 false, 否則返回一個(gè)整數(shù), 0 表示隊(duì)列不存在(或者為空).

示例

$ssdb->qsize('q');

qlist, qrlist

說明

列出名字處于區(qū)間 (name_start, name_end] 的 queue/list.

("", ""] 表示整個(gè)區(qū)間.

參數(shù)

name_start - 返回的起始名字(不包含), 空字符串表示 -inf.
name_end - 返回的結(jié)束名字(包含), 空字符串表示 +inf.
limit - 最多返回這么多個(gè)元素.

返回值

出錯(cuò)則返回 false, 返回返回包含名字的數(shù)組.

示例

$ssdb->qlist('a', 'z', 10);

qclear

說明

清空一個(gè)隊(duì)列.

參數(shù)

name -

返回值

出錯(cuò)返回 false.

示例

$ssdb->qclear('q');

qfront

說明

返回隊(duì)列的第一個(gè)元素.

參數(shù)

name -

返回值

出錯(cuò)返回 false, 隊(duì)列不存在(或者為空)則返回 null, 否則返回一個(gè)元素.

示例

$ssdb->qfront('q');

qback

說明

返回隊(duì)列的最后一個(gè)元素.

參數(shù)

name -

返回值

出錯(cuò)返回 false, 隊(duì)列不存在(或者為空)則返回 null, 否則返回一個(gè)元素.

示例

$ssdb->qback('q');

qget

說明

返回指定位置的元素. 0 表示第一個(gè)元素, 1 是第二個(gè) ... -1 是最后一個(gè).

參數(shù)

name -
index - 可傳負(fù)數(shù).

返回值

出錯(cuò)返回 false, 如果指定位置不存在一個(gè)元素, 則返回 null, 否則返回一個(gè)元素.

示例

$ssdb->qget('q', -2);

qset

Since: 1.7.0.0

說明

更新位于 index 位置的元素. 如果超過現(xiàn)有的元素范圍, 會(huì)返回錯(cuò)誤.

參數(shù)

name -
index - 可傳負(fù)數(shù).
val -

返回值

出錯(cuò)則返回 false, 其它值表示正常.

示例

$ssdb->qset('q', 0, 'new val');

qrange

說明

返回下標(biāo)處于區(qū)域 [offset, offset + limit] 的元素.

參數(shù)

name - queue 的名字.
offset - 整數(shù), 從此下標(biāo)處開始返回. 從 0 開始. 可以是負(fù)數(shù), 表示從末尾算起.
limit - 正整數(shù), 最多返回這么多個(gè)元素.

返回值

如果出錯(cuò)則返回 false, 否則返回?cái)?shù)組.

示例

$ssdb->qrange('q', 0, 10);

qslice

說明

返回下標(biāo)處于區(qū)域 [begin, end] 的元素. begin 和 end 可以是負(fù)數(shù)

參數(shù)

name -
begin -
end -

返回值

出錯(cuò)返回 false, 否則返回包含元素的數(shù)組.

示例

$ssdb->qslice('q', 0, -1);

qpush

說明

本函數(shù)是 qpush_back() 的別名.

qpush_front

說明

往隊(duì)列的首部添加一個(gè)或者多個(gè)元素

參數(shù)

name -
item - 字符串或是字符串?dāng)?shù)組.

返回值

添加元素之后, 隊(duì)列的長(zhǎng)度, 出錯(cuò)返回 false.

示例

$ssdb->qpush_front('q', 'a');

qpush_back

說明

往隊(duì)列的尾部添加一個(gè)或者多個(gè)元素

參數(shù)

name -
item - 字符串或是字符串?dāng)?shù)組.

返回值

添加元素之后, 隊(duì)列的長(zhǎng)度, 出錯(cuò)返回 false.

示例

$ssdb->qpush_back('q', 'a');

qpop

說明

本函數(shù)是 qpop_front() 的別名.

qpop_front

說明

從隊(duì)列首部彈出一個(gè)或者多個(gè)元素.

參數(shù)

name -
size - 可選, 最多從隊(duì)列彈出這么多個(gè)元素

返回值

出錯(cuò)返回 false. 當(dāng) size 未指定或者小于等于 1 時(shí), 隊(duì)列不存在(或者為空)則返回 null, 否則刪除并返回一個(gè)元素. 當(dāng) size 大于等于 2 時(shí), 返回一個(gè)數(shù)組包含彈出的元素.

示例

$ssdb->qpop_front('q');

qpop_back

說明

從隊(duì)列尾部彈出一個(gè)或者多個(gè)元素.

參數(shù)

name -
size - 可選, 最多從隊(duì)列彈出這么多個(gè)元素

返回值

出錯(cuò)返回 false. 當(dāng) size 未指定或者小于等于 1 時(shí), 隊(duì)列不存在(或者為空)則返回 null, 否則刪除并返回一個(gè)元素. 當(dāng) size 大于等于 2 時(shí), 返回一個(gè)數(shù)組包含彈出的元素.

示例

$ssdb->qpop_back('q');

qtrim_front

說明

從隊(duì)列頭部刪除多個(gè)元素.

參數(shù)

name -
size - 最多從隊(duì)列刪除這么多個(gè)元素

返回值

出錯(cuò)返回 false. 返回被刪除的元素?cái)?shù)量.

示例

$ssdb->qtrim_front('q', 3);

qtrim_back

說明

從隊(duì)列頭部刪除多個(gè)元素.

參數(shù)

name -
size - 最多從隊(duì)列刪除這么多個(gè)元素

返回值

出錯(cuò)返回 false. 返回被刪除的元素?cái)?shù)量.

示例

$ssdb->qtrim_back('q', 3);

batch, exec

說明

批量執(zhí)行一批命令. 批量命令可以減少客戶端和服務(wù)器之間的交互延時(shí), 能提高性能和響應(yīng)速度.

這個(gè)特性是在客戶端實(shí)現(xiàn)的, ssdb-server 不支持批量命令, 而是當(dāng)作獨(dú)立的一個(gè)命令一個(gè)命令地執(zhí)行. 所有命令和參數(shù)的大小應(yīng)小于 10MB.

參數(shù)

返回值

如果 exec() 出錯(cuò)則返回 false, 否則返回一個(gè)數(shù)組包含對(duì)應(yīng)每一條命令的結(jié)果.

示例

$ret = $ssdb->batch()
    ->set('a', 1)
    ->get('a')
    ->exec();
// 或者
$ssdb->batch();
$ssdb->set('a', 1);
$ssdb->get('a');
$ret = $ssdb->exec();

dbsize

說明

返回?cái)?shù)據(jù)庫的估計(jì)大小, 以字節(jié)為單位. 如果服務(wù)器開啟了壓縮, 返回壓縮后的大小.

參數(shù)

返回值

出錯(cuò)返回 false. 返回?cái)?shù)據(jù)庫大小.

示例

$ssdb->dbsize();

info

說明

返回服務(wù)器的信息.

參數(shù)

opt - 可選, 可以是 cmd, leveldb

返回值

出錯(cuò)返回 false. 返回服務(wù)器信息的關(guān)聯(lián)數(shù)組.

示例

$ssdb->info();


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)