SSDB PHP程式api文檔


幫助改進此文件

SSDB PHP 用戶端API 文件

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

SSDB 是高效能NoSQL 資料庫, 支援zset 資料結構, 用於取代Redis. 官方網站是 # 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');

######################## ####錯誤處理######如果無法連接到SSDB 伺服器, SimpleSSDB 將拋出異常.大多數的方法(除了少數幾個例外)通過返回 ###false### 來標明出錯. 所以要使用強制等於(===)來判斷回傳值.#########如果出現網路錯誤, 所有的方法將會拋出SSDBException 例外.############注意: 因為實現的原因, 請保證所有的參數加起來不超過10MB 大小.######

方法

SimpleSSDB::__construct

說明

建立SimpleSSDB 的實例,並連接到SSDB 伺服器. 如果無法連接到伺服器, 將拋出異常.

參數

host - SSDB 伺服器的主機名稱或IP.
port - SSDB 伺服器的連接埠號碼.
timeout_ms - 可選, 連線逾時時間, 和傳送接收數據的逾時時間, 單位毫秒. 預設是2000 ms.

#傳回值

SimpleSSDB 的實例.

#範例

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

auth

#Since: 1.7.0.0

說明

#設定密碼, 之後將用於向伺服器校驗. 這個校驗不是立即進行的, 而是等你執行第一條指令的時候才發給伺服器. 注意, 密碼是明文傳送的!

參數

#password -

傳回值

出錯則回傳 false, 否則回傳 null.

範例

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

set

說明

設定指定key 的值內容.

參數

key -value

 -

回傳值

出錯則傳回###false###, 其它值表示正常.#########範例#######
$ssdb->set('key', 'value');
###############setx############################################################## #####說明#########設定指定key 的值內容, 同時設定存活時間.###

參數

key -
value -
## ttl - 存活時間(秒)

傳回值

出錯則回傳 

false, 其它值表示正常.

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

#setnx

說明

當key 不存在時, 設定指定key 的值內容. 如果已存在, 則不設定.

#參數

##key
 -
value
 -
#回傳值

出錯則回傳 

false

, 1: value 已經設定, 0: key 已經存在, 不更新.

範例

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

expire

說明

設定key(只針對KV 型別) 的存活時間.

參數

key -
ttl - 存活時間(秒)

#回傳值

出錯則回傳 false. 如果key 存在並設定成功, 回傳1, 如果key 不存在, 回傳0.

範例

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

#ttl

##ttl

返回key(只針對KV 型別) 的存活時間.

參數

key

 -

回傳值出錯則回傳 false

, 否則回傳key 的存活時間(秒), -1 表示沒有設定存活時間.

#範例

$ssdb->ttl('key');

#########get#########說明######### 取得指定key 的值內容.###

參數

key -

傳回值

如果key 不存在則回傳 null, 若出錯則回傳 false, 否則回傳key 對應的值內容.

範例

#
$ssdb->get('key');

getset

說明

更新key 對應的value, 並傳回更新前的舊的value .

參數

key# -
value -

回傳值

如果key 不存在則回傳 

null

, 如果出錯則回傳 false, 否則傳回key 對應的值內容.

範例######
$ssdb->getset('key', 'value');
###############del########說明##### ####刪除指定的key.###

參數

key -

傳回值

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

##範例
$ssdb->del('key');

incr

從1.7.0.1 起, 如果value 不能轉換成整數, incr 會回傳錯誤.

說明

使 

key 對應的值增加 num. 參數 num 可以為負數. 如果原來的值不是整數(字串形式的整數), 它會先轉換成整數.

參數

##key
 -
num
 - 可選, 必須是有符號整數, 預設是1.
回傳值

#如果出錯則回傳 

false

, 否則回傳新的值.

範例

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

exists

說明

判斷指定的key 是否存在.

參數

#key -

##傳回值

如果存在, 回傳 

true, 否則回傳 false.

範例
$ssdb->exists('key');

getbit

說明

#取得字串內指定位置的位元值(BIT).

參數

key -
#offset - 位元偏移

傳回值

回傳位元值(0 或1), 如果key 不存在或偏移超過活字串長度範圍, 回傳0.

範例

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

#setbit

說明

設定字串內指定位置的位元值(BIT), 字串的長度會自動擴充.

參數

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

#回傳值

傳回原來的位元值. 如果val 不是0 或1, 回傳 

false.

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

bitcount

#說明

計算字串的子字串所包含的位值為1 的數目. 若 

start 是負數, 則從字串結尾算起. 若 end 是負數, 則表示從字串結尾算起(包含). 類似Redis 的 bitcount#

參數

key -
start - 可選, 子字串的位元組偏移
end - 可選

# 傳回值

傳回位元值為1 的個數. 出錯返回 false.

範例

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

countbit

#說明
計算字串的子字串所包含的位元值為1 的個數. 若 
start
 是負數, 則從字串結尾算起. 若 size 是負數, 則表示從字串結尾算起, 忽略掉那麼多位元組.

參數

##key  -

###start### - 可選, 子字串的位元組偏移#########size### - 可選, 子字串的長度(位元組數), 預設為字串最後一個位元組############傳回值#########傳回位元值為1 的個數.出錯回傳 ## #false###.###

範例

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

substr

說明

取得字串的子字串. 若 start 是負數, 則從字串結尾算起. 若 size 是負數, 則表示從字串結尾算起, 忽略掉那麼多字節(類似PHP 的 substr()).

參數

##key -
#start - 可選, int, 子字串的位元組偏移
size - 可選, int, 子字串的長度(位元組數) , 預設為字串最後一個位元組

傳回值

#字串的子字串.

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

strlen

#說明

計算字串的長度(位元組數).

參數

key -

傳回值

傳回字串的長度, key 不存在則回傳0.

範例

$ssdb->strlen('key');

keys/rkeys

說明

列出處於區間(key_start, key_end] 的key 列表.

("", ""] 表示整個區間.

參數

key_start - 傳回的起始key(不包含), 空字串表示-inf.
key_end - 回傳的結束key(包含), 空字串表示inf.
#limit - 最多回傳這麼多元素.

#傳回值

如果出錯則回傳 false, 否則傳回包含key 的陣列.

範例

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

scan

說明

#scan

說明

列出處於區間(key_start, key_end] 的key-value 列表.
("", ""] 表示整個區間.
參數
#key_start - 傳回的起始key(不包含), 空字串表示-inf.
key_end

 - 傳回的結束key(包含),空字串表示inf.

limit

 - 最多回傳這麼多元素.

## 傳回值

##如果出錯則回傳 false, 否則回傳包含key-value 的數關聯群組.範例
$ssdb->scan('a', 'z', 10);

遍歷key-value 對清單

$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

#######說明#########列出處於區間(key_start , key_end] 的key-value 列表, 反向順序.######("", ""] 表示整個區間.###

參數

key_start - 傳回的起始key(不包含), 空字串表示inf.
key_end - 回傳的結束key(包含), 空白字串表示-inf.
#limit - 最多回傳這麼多元素.

#傳回值

如果出錯則回傳 false, 否則回傳包含key-value 的數關聯群組.

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

multi_set

#說明##批次設定一批key-value.

參數

kvs
 - 包含key-value 的關聯陣列.
返回值

出錯則回傳 

false

, 其它值表示正常.

範例

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

########### ########multi_get#########說明##########批次取得一批key 對應的值內容.###

參數

keys - 包含key 的陣列.

傳回值

#如果出錯則回傳 false, 否則回傳包含key-value 的關聯數組, 如果某個key 不存在, 則它不會出現在回傳數組中.

#範例

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

multi_del

說明

批次刪除一批key 和其對應的值內容.

參數

#keys - 包含key 的陣列.

#傳回值

出錯則回傳 false, 其它值表示正常.

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

hset

說明

#設定hashmap 中指定key 對應的值內容.

參數

name - hashmap 的名字.
key - hashmap 中的key.
value - key 對應的值內容.

#回傳值

##出錯則回傳 

#false , 其它值表示正常.

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

##hget

說明

取得hashmap 中指定key 的值內容.

#參數

name
 - hashmap 的名字.
key
 - hashmap 中的key.
##回傳值

##如果key 不存在則回傳 null, 若出錯則回傳 

false

, 否則回傳key 對應的值內容.

範例

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

#hdel

說明

取得hashmap 中的指定key.

參數

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

傳回值

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

範例

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

hincr

從1.7.0.1 起, 如果value 不能轉換成整數, incr 會回傳錯誤.

說明

##使hashmap 中的 

key 對應的值增加 num. 參數 num 可以為負數. 如果原來的值不是整數(字串形式的整數), 它會先轉換成整數.

參數

name - hashmap 的名字.
key# -
#num - 可選, 必須是有符號整數, 預設是1.

回傳值

如果出錯則回傳 false, 否則回傳新的值.

範例

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

hexists

#說明

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

參數

name - hashmap 的名字.

key

 -

傳回值##如果存在, 返回true

, 否則回傳 

false

.

#範例

$ssdb->hexists('h', 'key');
######################################################################### hsize#########說明#########傳回hashmap 中的元素個數.###

參數

name - hashmap 的名字.

回傳值

出錯則回傳 false, 否則傳回元素的數量, 0 表示不存在hashmap(空).

範例

$ssdb->hsize('h');

hlist, hrlist

說明

#列出名字處於區間(name_start, name_end] 的hashmap.

("", ""] 表示整個區間.

參數

#name_start - 傳回的起始名字(不含), 空白字串表示-inf.
name_end - 傳回的結束名字(包含), 空白字串表示inf.
##limit  - 最多回傳這麼多元素.

回傳值

出錯則回傳 

false, 回傳包含名字的數組.

範例

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

#hkeys

說明

#hkeys

列出hashmap 中處於區間(key_start, key_end] 的key 列表.
#("", ""] 表示整個區間.
參數
#name - hashmap 的名字.
key_start - 起始key(不含), 空字串表示-inf.
#key_end

 - 結束key(包含), 空白字串表示inf.

#limit

 - 最多回傳這麼多元素.

#回傳值

如果出錯則回傳 false, 否則回傳包含key 的陣列.

範例

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

hgetall#########說明##########傳回整個hashmap.###

參數

name - hashmap 的名字.

回傳值

如果出錯則回傳 false, 否則回傳包含key-value 的關聯數組.

範例

$ssdb->hgetall('h');

#hscan

說明

列出hashmap 中處於區間(key_start, key_end] 的key-value 清單.

("", ""] 表示整個區間.

參數

#name - hashmap 的名字.
key_start - 回傳的起始key(不包含), 空字串表示-inf.
key_end - 回傳的結束key(包含), 空字串表示inf.
limit - 最多回傳這麼多元素.

回傳值

如果出錯則回傳 false, 否則回傳包含key-value 的關聯數組.

範例

$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 中處於區間(key_start, key_end] 的key-value 列表, 反向順序.

("", ""] 表示整個區間.

##參數

# #name
 - hashmap 的名字.
key_start
 - 回傳的起始key(不含), 空字串表示inf.
key_end
 - 回傳的結束key(包含), 空白字串表示-inf.
limit
 - 最多回傳這麼多元素.
回傳值

如果出錯則回傳 

false

, 否則回傳包含key-score 的關聯數組.

範例

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

hclear

#說明

刪除hashmap 中的所有key.

參數

name - hashmap 的名字.

回傳值

如果出錯則回傳 false, 否則回傳刪除的key 的數量.

範例

$ssdb->hclear('h');

#multi_hset

說明

#批次設定hashmap 中的key-value.

##參數

name - hashmap 的名字.

#kvs - 包含key-value 的關聯陣列.

#回傳值

出錯則回傳 false, 其它值表示正常.

範例

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

###multi_hget#########說明##########批次取得hashmap 中多個key 對應的權重值.###

參數

name - hashmap 的名字.
keys - 包含key 的陣列.

傳回值

如果出錯則回傳 false, 否則回傳包含key-value 的關聯數組, 如果某個key 不存在, 則它不會出現在回傳數組中.

範例

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

multi_hdel

##說明

批次刪除hashmap 中的key.

#參數

name

- hashmap 的名字.

keys

 - 包含key 的陣列.

#########回傳值########出錯則回傳###false###, 其它值表示正常.#########範例#######
$ssdb->multi_hdel('h', array('k1', 'k2'));
###############zset##### #####說明#########設定zset 中指定key 對應的權重值.###

參數

name - zset 的名字.
key - zset 中的key.
score - 整數, key 對應的權重值

傳回值

出錯則回傳  false, 其它值表示正常.

範例

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

zget

說明

取得zset 中指定key 的權重值.

#參數

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

回傳值

如果key 不存在則回傳 null, 若出錯則回傳 false, 否則回傳key 對應的權重值.

範例

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

#zdel

說明

取得zset 中的指定key.

參數

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

傳回值

如果出錯則回傳 

false, 其它值表示正常. 你無法透過傳回值來判斷被刪除的key 是否存在.

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

zincr

#說明

使zset 中的 

key 對應的值增加 num. 參數 num# 可以為負數.如果原來的值不是整數(字串形式的整數), 它會被先轉換成整數.

參數

name - zset 的名字.
key -
num - 必須是有符號整數.

回傳值

如果出錯則回傳 false,否則回傳新的值.

範例

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

zexists

##說明

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

參數

name - zset 的名稱.
key -

##如果存在, 回傳 

true# , 否則回傳 false.

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

##zsize

#說明

傳回zset 中的元素個數.

參數

name - zset 的名字.

傳回值

出錯則回傳 false, 否則回傳元素的個數, 0 表示不存在zset(空).

範例

$ssdb->zsize('z');

zlist, zrlist

說明

#列出名字處於區間(name_start, name_end] 的zset.

("", ""] 表示整個區間.

參數

#name_start - 傳回的起始名字(不含), 空白字串表示-inf.
name_end - 傳回的結束名字(包含), 空白字串表示inf.
##limit  - 最多回傳這麼多元素.

回傳值

出錯則回傳 

false, 否則傳回包含名字的數組.

範例

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

zkeys

說明

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

參數

name  - zset 的名字.
key_start - 參見 zscan().
#score_start - 參見 zscan().
#score_end - 參見 zscan()# .
limit - 最多回傳這麼多元素.

回傳值

如果出錯則回傳 false, 否則傳回包含key 的陣列.

範例

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

zscan

說明

列出zset 中處於區間(key_start score_start, score_end] 的key-score 列表. 如果key_start 為空, 那麼對應權重值大於或等於score_start 的key 將被傳回. 如果key_start 不為空, 那麼對應權重值大於score_start 的key 會被傳回. 如果key_start 不為空, 那麼對應權重值大於score_start 的key , 或大於key_start 且對應權重值等於score_start 的key 將被回傳.

#也就是說, 傳回的key 在 (key.score == score_start && key > key_start || key.score > score_start), 且key.score <= score_end 區間. 先判斷score_start, score_end, 然後判斷key_start.

("", ""] 表示整個區間.

參數

name - zset 的名字.
key_start - score_start對應的key.
score_start - 傳回key 的最小權重值(可能不包含, 依賴key_start), 空字串表示-inf.
#score_end  - 回傳key 的最大權重值(包含), 空字串表示inf.
#limit - 最多回傳這麼多元素.

#回傳值

如果出錯則回傳 false, 否則回傳包含key-score 的關聯數組.

範例

$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)...
    // 记住最大的元素和它的权重
    $key_start = $key;
    $score_start = $score;
}   

}

zrscan

說明

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

#參數

##name - zset的名字.
key_start - 參見 zkeys().
score_start - 參見 zkeys().
score_end - 參見 zkeys().
limit - 最多回傳這麼多元素.

#回傳值

如果出錯則回傳 

false, 否則傳回包含key-score 的關聯陣列.

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

zrank, zrrank

說明

注意! 本方法可能會非常慢! 請在離線環境中使用.#

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

參數

name - zset 的名字.
key -

回傳值

##found .

出錯則回傳 

falsenull 表示key 不存在於zset, 否則回傳排名.

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

zrange, zrrange

說明

##注意! 本方法在offset 越來越大時, 會越慢!

根據下標索引區間[offset, offset limit) 取得key-score 對, 下標從0 開始. zrrange 是反向順序取得.

參數

name - zset 的名字.
offset - 正整數, 從此下標處開始回傳. 從0 開始.
limit - 正整數, 最多回傳這麼多key-score 對.

傳回值

如果出錯則回傳 false, 否則回傳包含key-score 的關聯數組.

範例

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

zclear

說明

#刪除zset 中的所有key.

參數

name - zset 的名字.

回傳值

如果出錯則返回 false, 否則返回刪除的key 的數量.

#範例

$ssdb->zclear('z');

zcount

說明

傳回處於區間[start,end] key 數量.

參數

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

#回傳值

如果出錯則回傳 false, 否則回傳符合條件的key 的數量.

範例

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

zsum

說明

返回key 處於區間[start,end] 的score 的和.

參數

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

傳回值

如果出錯則回傳 false, 否則傳回符合條件的score 的求和.

範例

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

zavg

說明

返回key 處於區間[start,end] 的score 的平均值.

參數

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

傳回值

#如果出錯則傳回 false, 否則傳回符合條件的score 的平均值.

範例

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

#zremrangebyrank

說明

#刪除位置處於區間[start,end] 的元素.

參數

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

返回值

出錯則回傳 false

# , 否則傳回被刪除的元素個數.

範例

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

zremrangebyscore
#說明
刪除權重處於區間[start,end] 的元素.
#參數
##name
 - zset 的名字.

start

 - (包含).

end

 -(已包含).####### ######傳回值#########出錯則回傳 ###false###, 否則回傳被刪除的元素個數.###

範例

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

zpop_front

說明

從zset 首部刪除並回傳limit 個元素.

參數

name - zset 的名字.
limit - 正整數, 最多要刪除並回傳這麼多key-score 對.

傳回值

#如果出錯則回傳 false, 否則傳回包含key-score 的關聯數組.

範例

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

########## ######zpop_back#########說明#########從zset 尾部刪除並傳回###limit### 個元素.###

參數

name - zset 的名字.
limit - 正整數, 最多要刪除並回傳這麼多key-score 對.

回傳值

如果出錯則回傳 false, 否則回傳包含key -score 的關聯數組.

範例

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

multi_zset

說明

批次設定zset 中的key-score.

參數

name - zset 的名字.
kvs - 包含key-score 的關聯陣列.

傳回值

##出錯則回傳 

false, 其它值表示正常.

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

multi_zget

說明

批次取得zset 中多個key 對應的權重值.

參數

name - zset 的名字.
keys - 包含key 的陣列.

傳回值

如果出錯則回傳 false, 否則回傳包含key-score 的關聯數組, 如果某個key 不存在, 則它不會出現在返回數組中.

範例

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

multi_zdel

說明

批次刪除zset 中的key.

#參數

name

- zset 的名字.

keys

 - 包含key 的陣列.

######回傳值########出錯則回傳###false###, 其它值表示正常.#########範例######
$ssdb->multi_zdel('z', array('k1', 'k2'));
##############qsize##### #####說明#########傳回佇列的長度.###

參數

name -

傳回值

出錯回傳 false, 否則回傳一個整數, 0 表示佇列不存在(或為空).

範例

$ssdb->qsize('q');

#qlist, qrlist

說明

#列出名字處於區間(name_start, name_end] 的queue/list.

("", ""] 表示整個區間.

參數

#name_start - 傳回的起始名字(不包含), 空字串表示-inf.
name_end - 回傳的結束名字(包含), 空字串表示inf.
limit - 最多回傳這麼多元素.

傳回值

出錯則回傳 false, 回傳包含名字的陣列.

範例

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

qclear

說明

已清除一個佇列.

參數

name -

回傳值

錯回 false.

範例

$ssdb->qclear('q');

qfront

說明

傳回佇列的第一個元素.

#name -

傳回值

發生錯誤回傳 false, 佇列不存在(或為空)則回傳 null, 否則回傳一個元素.

範例

$ssdb->qfront('q');

#qback

說明

返回佇列的最後一個元素.

參數

#name -

傳回值

出錯回傳 false, 佇列不存在(或為空)則回傳 null, 否則回傳一個元素.

#範例

$ssdb->qback('q');

qget

#說明

傳回指定位置的元素. 0 表示第一個元素, 1 是第二個... -1 是最後一個.

參數

##name# -
index - 可傳負數.

#回傳值

錯誤回傳 

false, 若指定位置不存在一個元素, 則回傳 null, 否則回傳一個元素.

範例

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

qset

Since: 1.7.0.0

#說明

更新位於index 位置的元素. 如果超過現有的元素範圍, 會傳回錯誤.

參數

##name -
index - 可傳負數.
val -

##回傳值

出錯則回傳 ###false###, 其它值表示正常.#########範例######
$ssdb->qset('q', 0, 'new val');
### ############qrange#########說明##########返回下標處於區域[offset, offset limit] 的元素.###

參數

name - queue 的名字.
offset - 整數, 從此下標處開始返回. 從0 開始. 可以是負數, 表示從末尾算起.
limit - 正整數, 最多返回這麼多元素.

#傳回值

如果出錯則回傳 false, 否則回傳陣列.

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

qslice

說明

#返回下標處於區域[begin, end] 的元素. begin 和end 可以是負數

參數

name -
begin -
#end
 -

返回值

#錯誤回傳 false

, 否則傳回包含元素的陣列. ###

範例

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

#qpush

說明

本函數是 qpush_back() 的別名.

qpush_front

##說明

##在佇列的首部新增一個或多個元素

參數

#name
 -
it​​em
 - 字串或是字串陣列.

傳回值

新增元素之後, 佇列的長度, 出錯回傳 # false

.

範例

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

#qpush_back

##說明

#在佇列的尾端新增一個或多個元素

參數

name -
item - 字串或是字串陣列.

傳回值

新增元素之後, 佇列的長度, 出錯傳回 false.

範例

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

qpop

#說明

本函數是 qpop_front( ) 的別名.

qpop_front

說明

從隊列首部彈出一個或多個元素.

參數

name -
size - 可選, 最多從佇列彈出這麼多個元素

傳回值

錯誤回傳 false. 當 size 未指定或小於等於1 時, 佇列不存在(或為空)則回傳 null, 否則刪除並傳回一個元素. 當 size 大於等於2 時, 傳回一個陣列包含彈出的元素.

範例

$ssdb->qpop_front('q');

#qpop_back

說明

從佇列尾端彈出一個或多個元素.

參數

#name -
size - 可選, 最多從佇列彈出這麼多元素

傳回值

出錯回傳 false. 當 size 未指定或小於等於1 時, 佇列不存在(或為空)則傳回 null, 否則刪除並傳回一個元素. 當 size# 大於等於2 時, 傳回一個陣列包含彈出的元素.

範例

$ssdb->qpop_back('q');

#qtrim_front

說明

##qtrim_front

說明

從佇列頭部刪除多個元素.
參數
#name
 -

##size - 最多從佇列刪除這麼多元素

返回值

#錯誤回傳 false

. 傳回被刪除的元素數量. 範例

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

#qtrim_back

##說明

#從佇列頭部刪除多個元素.

參數
#name -

size - 最多從佇列刪除這麼多元素

傳回值

###出錯回傳 ###false###. 回傳被刪除的元素數量.###

範例

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

#batch, exec

##說明

# #批次執行一批指令.批次指令可以減少客戶端和伺服器之間的互動延時, 能提高效能和回應速度.

這個特性是在客戶端實現的, ssdb-server不支援批次指令, 而是當作獨立的一個指令一個指令地執行. 所有指令和參數的大小應小於10MB.

參數

#回傳值

如果 exec() 出錯則回傳 false

, 否則回傳一個陣列包含對應每個指令的結果.

範例

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

dbsize

說明

傳回資料庫的估計

大小, 以位元組為單位. 如果伺服器開啟了壓縮, 傳回壓縮後的大小.###

參數

##錯誤回傳 false. 傳回資料庫大小.

範例

$ssdb->dbsize();

#info

說明

回傳伺服器的資訊.

參數

opt - 可選, 可以是 cmd, leveldb

傳回值

錯回傳 false. 傳回伺服器資訊的關聯陣列.

範例

$ssdb->info();