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');
說明
設定指定key 的值內容.參數
key -value
-
回傳值
出錯則傳回###false###, 其它值表示正常.#########範例#######$ssdb->set('key', 'value');###############setx############################################################## #####說明#########設定指定key 的值內容, 同時設定存活時間.###
參數
key
-value
-- ## ttl
- 存活時間(秒)
傳回值
出錯則回傳false, 其它值表示正常.
範例$ssdb->setx('key', 'value', 60);
#setnx說明
當key 不存在時, 設定指定key 的值內容. 如果已存在, 則不設定.#參數
- ##key
- -
- -
出錯則回傳
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
回傳值出錯則回傳 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
- -
- - 可選, 必須是有符號整數, 預設是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 .出錯則回傳 false,
null 表示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 -
item - 字串或是字串陣列.
傳回值
新增元素之後, 佇列的長度, 出錯回傳
# 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();