對象Redis
Redis 資料庫用戶端對象
用來建立和管理Redis 資料庫,建立方法:
1
2var db = require("db");
var test = new db.openRedis("redis-server");
繼承關係
成員屬性
onsuberror
Function, 查詢與設定錯誤處理函數,當sub 發生錯誤或網路中斷時回呼,當回呼發生後,本物件的一切sub 都會中止
1Function Redis.onsuberror;
成員函數
command
redis 基礎指令方法
1
2Value Redis.command(String cmd,
...args);
呼叫參數:
- cmd: String, 指定發送的命令
- args: ..., 指定發送的參數
回傳結果:
- Value, 傳回伺服器傳回的結果
set
將字串值value 關聯到key,如果key 已經持有其他值, SET 就會覆寫舊值,無視型別
1
2
3Redis.set(Buffer key,
Buffer value,
Long ttl = 0);
呼叫參數:
setNX
將key 的值設為value ,當且僅當key 不存在。若給定的key 已經存在,則SETNX 不做任何動作。
1
2
3Redis.setNX(Buffer key,
Buffer value,
Long ttl = 0);
呼叫參數:
setXX
將key 的值設為value,只在鍵已經存在時,才對鍵進行設定操作。
1
2
3Redis.setXX(Buffer key,
Buffer value,
Long ttl = 0);
呼叫參數:
mset
同時設定一個或多個key-value 對。如果某個給定key 已經存在,那麼MSET 會用新值覆寫原來的舊值
1Redis.mset(Object kvs);
呼叫參數:
- kvs: Object, 指定要設定的key/value 對象
同時設定一個或多個key-value 對。如果某個給定key 已經存在,那麼MSET 會用新值覆寫原來的舊值
1Redis.mset(...kvs);
呼叫參數:
- kvs: ..., 指定要設定的key/value 列表
msetNX
同時設定一個或多個key-value 對,當且僅當所有給定key 都不存在
1Redis.msetNX(Object kvs);
呼叫參數:
- kvs: Object, 指定要設定的key/value 對象
同時設定一個或多個key-value 對,當且僅當所有給定key 都不存在
1Redis.msetNX(...kvs);
呼叫參數:
- kvs: ..., 指定要設定的key/value 列表
append
如果key 已經存在並且是一個字串,append 指令將value 追加到key 原來的值的末尾。如果key 不存在,append 就簡單地將給定key 設為value
1
2Integer Redis.append(Buffer key,
Buffer value);
呼叫參數:
回傳結果:
- Integer, 追加value 之後, key 中字串的長度
setRange
用value 參數覆寫給定key 所儲存的字串值,從偏移量offset 開始
1
2
3Integer Redis.setRange(Buffer key,
Integer offset,
Buffer value);
呼叫參數:
回傳結果:
- Integer, 被修改之後,字串的長度
getRange
傳回key 中字串值的子字串,字串的截取範圍由start 和end 兩個偏移量決定(包括start 和end 在內)
1
2
3Buffer Redis.getRange(Buffer key,
Integer start,
Integer end);
呼叫參數:
- key:Buffer, 指定要查詢的key
- start: Integer, 指定查詢的起始位元組偏移
- end: Integer, 指定查詢的結束位元組偏移
回傳結果:
- Buffer, 截取得出的子字串
strlen
傳回key 所儲存的字串值的長度。當key 儲存的不是字串值時,回傳一個錯誤
1Integer Redis.strlen(Buffer key);
呼叫參數:
- key:Buffer, 指定要計算的key
回傳結果:
- Integer, 字串值的長度。當key 不存在時,回傳 0
bitcount
計算給定字串中,被設定為1 的比特位的數量
1
2
3Integer Redis.bitcount(Buffer key,
Integer start = 0,
Integer end = -1);
呼叫參數:
- key:Buffer, 指定要計算的key
- start: Integer, 指定要計算的起始字節,可以使用負數值,-1 表示最後一個字節,而-2 表示倒數第二個字節,以此類推
- end: Integer, 指定要計算的結束字節,可以使用負數值,-1 表示最後一個字節,而-2 表示倒數第二個字節,以此類推
回傳結果:
- Integer, 被設定為1 的位的數量
get
傳回key 所關聯的字串值,如果key 不存在那麼傳回特殊值Null
1Buffer Redis.get(Buffer key);
呼叫參數:
- key:Buffer, 指定要關聯的key
回傳結果:
- Buffer, 當key 不存在時,傳回Null ,否則,傳回key 的值
mget
傳回所有(一個或多個)給定key 的值。如果給定的key 裡面,有某個key 不存在,那麼這個key 回傳特殊值nil 。
1NArray Redis.mget(Array keys);
呼叫參數:
- keys: Array, 指定要查詢的key 陣列
回傳結果:
- NArray, 一個包含所有給定key 的值的列表
傳回所有(一個或多個)給定key 的值。如果給定的key 裡面,有某個key 不存在,那麼這個key 回傳特殊值nil 。
1NArray Redis.mget(...keys);
呼叫參數:
- keys: ..., 指定要查詢的key 列表
回傳結果:
- NArray, 一個包含所有給定key 的值的列表
getset
將給定key 的值設為value ,並傳回key 的舊值(old value)
1
2Buffer Redis.getset(Buffer key,
Buffer value);
呼叫參數:
回傳結果:
- Buffer, 傳回給定key 的舊值
decr
將key 所儲存的值減去減量
1
2Long Redis.decr(Buffer key,
Long num = 1);
呼叫參數:
- key:Buffer, 指定要修改的key
- num: Long, 指定要減去的數值
回傳結果:
- Long, 減去num 之後,key 的值
incr
將key 所儲存的值加上增量
1
2Long Redis.incr(Buffer key,
Long num = 1);
呼叫參數:
- key:Buffer, 指定要修改的key
- num: Long, 指定要加上的數值
回傳結果:
- Long, 加上num 之後,key 的值
setBit
對key 所儲存的字串值,設定或清除指定偏移量上的位元(bit)
1
2
3Integer Redis.setBit(Buffer key,
Integer offset,
Integer value);
呼叫參數:
- key:Buffer, 指定要修改的key
- offset: Integer, 指定修改的位元偏移
- value: Integer, 指定設定或清除的參數,可以是0 也可以是 1
回傳結果:
- Integer, 指定偏移量原來儲存的位
getBit
對key 所儲存的字串值,取得指定偏移量上的位元(bit)
1
2Integer Redis.getBit(Buffer key,
Integer offset);
呼叫參數:
- key:Buffer, 指定要查詢的key
- offset: Integer, 指定查詢的位元偏移
回傳結果:
- Integer, 字串值指定偏移量上的位元(bit)
exists
檢查給定key 是否存在
1Boolean Redis.exists(Buffer key);
呼叫參數:
- key:Buffer, 指定要關聯的key
回傳結果:
- Boolean, 若key 存在,回傳True,否則回傳False
type
傳回key 所儲存的值的類型
1String Redis.type(Buffer key);
呼叫參數:
- key:Buffer, 指定要查詢的key
回傳結果:
- String, 傳回key 所儲存的值的類型,可能的值為none(key不存在) string(字串) list(列表) set(集合) zset(有序集)hash(哈希表)
keys
尋找所有符合給定模式pattern 的key
1NArray Redis.keys(String pattern);
呼叫參數:
- pattern: String, 指定查詢模式
回傳結果:
- NArray, 符合給定模式的key 列表
del
刪除給定的一個或多個key,不存在的key 會被忽略
1Integer Redis.del(Array keys);
呼叫參數:
- keys: Array, 指定要刪除的key 數組
回傳結果:
- Integer, 被刪除key 的數量
刪除給定的一個或多個key,不存在的key 會被忽略
1Integer Redis.del(...keys);
呼叫參數:
- keys: ..., 指定要刪除的key 列表
回傳結果:
- Integer, 被刪除key 的數量
expire
為給定key 設定生存時間,當key 過期時,它會被自動刪除
1
2Boolean Redis.expire(Buffer key,
Long ttl);
呼叫參數:
- key:Buffer, 指定要設定的key
- ttl: Long, 以毫秒為單位為key 設定生存時間
回傳結果:
- Boolean, 若key 存在,回傳True,否則回傳False
ttl
返回給定key 的剩餘生存時間
1Long Redis.ttl(Buffer key);
呼叫參數:
- key:Buffer, 指定要查詢的key
回傳結果:
- Long, 以毫秒為單位,返回key 的剩餘生存時間,當key 不存在時,返回-2,當key 存在但沒有設定剩餘生存時間時,返回-1
persist
移除給定key 的生存時間,將這個key 從『易失的』(帶生存時間key )轉換成『持久的』(一個不帶生存時間、永不過期的key)
1Boolean Redis.persist(Buffer key);
呼叫參數:
- key:Buffer, 指定要設定的key
回傳結果:
- Boolean, 若key 存在,回傳True,否則回傳False
rename
將key 改名為newkey,當key 和newkey 相同,或key 不存在時,回傳一個錯誤
1
2Redis.rename(Buffer key,
Buffer newkey);
呼叫參數:
renameNX
當且僅當newkey 不存在時,將key 改名為newkey,當key 不存在時,回傳一個錯誤
1
2Boolean Redis.renameNX(Buffer key,
Buffer newkey);
呼叫參數:
回傳結果:
- Boolean, 修改成功時,回傳True,如果newkey 已經存在,回傳False
sub
訂閱給定的一個頻道的訊息,當訊息發生時自動呼叫func,func 包含兩個參數,依序為channel 和message,同一頻道同一函數只會回調一次
1
2Redis.sub(Buffer channel,
Function func);
呼叫參數:
- channel:Buffer, 指定訂閱的頻道名稱
- func: Function, 指定回呼函數
訂閱給定的一組頻道的訊息,當訊息發生時自動呼叫對應的回呼函數,同一頻道相同函數只會回呼一次
1Redis.sub(Object map);
呼叫參數:
- map: Object, 指定頻道映射關係,物件屬性名稱將作為頻道名稱,屬性的值將作為回呼函數
unsub
退訂給定的頻道的全部回調
1Redis.unsub(Buffer channel);
呼叫參數:
- channel:Buffer, 指定退訂的頻道名稱
退訂給定的頻道的指定回呼函數
1
2Redis.unsub(Buffer channel,
Function func);
呼叫參數:
- channel:Buffer, 指定退訂的頻道名稱
- func: Function, 指定取消訂閱的回呼函數
退訂一組給定的頻道的全部回調
1Redis.unsub(Array channels);
呼叫參數:
- channels: Array, 指定取消訂閱的頻道數組
退訂給定的一組頻道的指定回呼函數
1Redis.unsub(Object map);
呼叫參數:
- map: Object, 指定頻道映射關係,物件屬性名稱將作為頻道名稱,屬性的值將作為回呼函數
psub
依照範本訂閱一組頻道的信息,當訊息發生時自動呼叫func,func 包含三個參數,依序為channel,message 和pattern,同一範本同一函式只會回呼一次
1
2Redis.psub(String pattern,
Function func);
呼叫參數:
- pattern: String, 指定訂閱的頻道模板
- func: Function, 指定回呼函數
訂閱給定的一組頻道範本的訊息,當訊息發生時自動呼叫對應的func,同一頻道相同函數只會回呼一次
1Redis.psub(Object map);
呼叫參數:
- map: Object, 指定頻道映射關係,物件屬性名稱將作為頻道模板,屬性的值將作為回呼函數
unpsub
退訂給定模板的頻道的全部回調
1Redis.unpsub(String pattern);
呼叫參數:
- pattern: String, 指定取消訂閱的頻道模板
退訂給定模板的頻道的指定回調函數
1
2Redis.unpsub(String pattern,
Function func);
呼叫參數:
- pattern: String, 指定取消訂閱的頻道模板
- func: Function, 指定取消訂閱的回呼函數
退訂一組給定模板的頻道的全部回調
1Redis.unpsub(Array patterns);
呼叫參數:
- patterns: Array, 指定發佈的頻道範本數組
退訂一組模板的頻道的指定回呼函數
1Redis.unpsub(Object map);
呼叫參數:
- map: Object, 指定頻道映射關係,物件屬性名稱將作為頻道模板,屬性的值將作為回呼函數
pub
將訊息message 傳送到指定的頻道channel
1
2Integer Redis.pub(Buffer channel,
Buffer message);
呼叫參數:
回傳結果:
- Integer, 接收此訊息的客戶端數量
getHash
取得指定key 的Hash 對象,此物件為包含指定key 的客戶端,只有呼叫其方法才會操作資料庫
1RedisHash Redis.getHash(Buffer key);
呼叫參數:
- key:Buffer, 指定要取得的key
回傳結果:
- RedisHash, 傳回包含指定key 的Hash 對象
getList
取得指定key 的List 對象,此物件為包含指定key 的客戶端,只有呼叫其方法才會操作資料庫
1RedisList Redis.getList(Buffer key);
呼叫參數:
- key:Buffer, 指定要取得的key
回傳結果:
- RedisList, 傳回包含指定key 的List 對象
getSet
取得指定key 的Set 對象,此物件為包含指定key 的客戶端,只有呼叫其方法才會操作資料庫
1RedisSet Redis.getSet(Buffer key);
呼叫參數:
- key:Buffer, 指定要取得的key
回傳結果:
- RedisSet, 傳回包含指定key 的Set 對象
getSortedSet
取得指定key 的SortedSet 對象,此物件為包含指定key 的客戶端,只有呼叫其方法才會操作資料庫
1RedisSortedSet Redis.getSortedSet(Buffer key);
呼叫參數:
- key:Buffer, 指定要取得的key
回傳結果:
- RedisSortedSet, 傳回包含指定key 的SortedSet 對象
dump
序列化給定key ,並傳回被序列化的值,使用restore 指令可以將這個值反序列化為Redis 鍵
1Buffer Redis.dump(Buffer key);
呼叫參數:
- key:Buffer, 指定要序列化的key
回傳結果:
- Buffer, 傳回序列化之後的值,如果key 不存在,那麼傳回null
restore
反序列化給定的序列化值,並將它和給定的key 關聯
1
2
3Redis.restore(Buffer key,
Buffer data,
Long ttl = 0);
呼叫參數:
close
關閉目前資料庫連線或事務
1Redis.close();
toString
傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現
1String Redis.toString();
回傳結果:
- String, 傳回物件的字串表示
toJSON
傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合
1Value Redis.toJSON(String key = "");
呼叫參數:
- key: String, 未使用
回傳結果:
- Value, 傳回包含可JSON 序列化的值