Object 內建對象

對象Redis

Redis 資料庫用戶端對象

用來建立和管理Redis 資料庫,建立方法:

1 2
var db = require("db"); var test = new db.openRedis("redis-server");

繼承關係

成員屬性

onsuberror

Function, 查詢與設定錯誤處理函數,當sub 發生錯誤或網路中斷時回呼,當回呼發生後,本物件的一切sub 都會中止

1
Function Redis.onsuberror;

成員函數

command

redis 基礎指令方法

1 2
Value Redis.command(String cmd, ...args);

呼叫參數:

  • cmd: String, 指定發送的命令
  • args: ..., 指定發送的參數

回傳結果:

  • Value, 傳回伺服器傳回的結果

set

將字串值value 關聯到key,如果key 已經持有其他值, SET 就會覆寫舊值,無視型別

1 2 3
Redis.set(Buffer key, Buffer value, Long ttl = 0);

呼叫參數:

  • key:Buffer, 指定要關聯的key
  • value:Buffer, 指定要關聯的數據
  • ttl: Long, 以毫秒為單位為key 設定生存時間;如果ttl 為0 ,那麼不設定生存時間

setNX

將key 的值設為value ,當且僅當key 不存在。若給定的key 已經存在,則SETNX 不做任何動作。

1 2 3
Redis.setNX(Buffer key, Buffer value, Long ttl = 0);

呼叫參數:

  • key:Buffer, 指定要關聯的key
  • value:Buffer, 指定要關聯的數據
  • ttl: Long, 以毫秒為單位為key 設定生存時間;如果ttl 為0 ,那麼不設定生存時間

setXX

將key 的值設為value,只在鍵已經存在時,才對鍵進行設定操作。

1 2 3
Redis.setXX(Buffer key, Buffer value, Long ttl = 0);

呼叫參數:

  • key:Buffer, 指定要關聯的key
  • value:Buffer, 指定要關聯的數據
  • ttl: Long, 以毫秒為單位為key 設定生存時間;如果ttl 為0 ,那麼不設定生存時間

mset

同時設定一個或多個key-value 對。如果某個給定key 已經存在,那麼MSET 會用新值覆寫原來的舊值

1
Redis.mset(Object kvs);

呼叫參數:

  • kvs: Object, 指定要設定的key/value 對象

同時設定一個或多個key-value 對。如果某個給定key 已經存在,那麼MSET 會用新值覆寫原來的舊值

1
Redis.mset(...kvs);

呼叫參數:

  • kvs: ..., 指定要設定的key/value 列表

msetNX

同時設定一個或多個key-value 對,當且僅當所有給定key 都不存在

1
Redis.msetNX(Object kvs);

呼叫參數:

  • kvs: Object, 指定要設定的key/value 對象

同時設定一個或多個key-value 對,當且僅當所有給定key 都不存在

1
Redis.msetNX(...kvs);

呼叫參數:

  • kvs: ..., 指定要設定的key/value 列表

append

如果key 已經存在並且是一個字串,append 指令將value 追加到key 原來的值的末尾。如果key 不存在,append 就簡單地將給定key 設為value

1 2
Integer Redis.append(Buffer key, Buffer value);

呼叫參數:

  • key:Buffer, 指定要追加的key
  • value:Buffer, 指定要追加的數據

回傳結果:

  • Integer, 追加value 之後, key 中字串的長度

setRange

用value 參數覆寫給定key 所儲存的字串值,從偏移量offset 開始

1 2 3
Integer Redis.setRange(Buffer key, Integer offset, Buffer value);

呼叫參數:

  • key:Buffer, 指定要修改的key
  • offset: Integer, 指定修改的位元組偏移
  • value:Buffer, 指定要覆寫的數據

回傳結果:

  • Integer, 被修改之後,字串的長度

getRange

傳回key 中字串值的子字串,字串的截取範圍由start 和end 兩個偏移量決定(包括start 和end 在內)

1 2 3
Buffer Redis.getRange(Buffer key, Integer start, Integer end);

呼叫參數:

  • key:Buffer, 指定要查詢的key
  • start: Integer, 指定查詢的起始位元組偏移
  • end: Integer, 指定查詢的結束位元組偏移

回傳結果:

  • Buffer, 截取得出的子字串

strlen

傳回key 所儲存的字串值的長度。當key 儲存的不是字串值時,回傳一個錯誤

1
Integer Redis.strlen(Buffer key);

呼叫參數:

  • key:Buffer, 指定要計算的key

回傳結果:

  • Integer, 字串值的長度。當key 不存在時,回傳 0

bitcount

計算給定字串中,被設定為1 的比特位的數量

1 2 3
Integer 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

1
Buffer Redis.get(Buffer key);

呼叫參數:

  • key:Buffer, 指定要關聯的key

回傳結果:

  • Buffer, 當key 不存在時,傳回Null ,否則,傳回key 的值

mget

傳回所有(一個或多個)給定key 的值。如果給定的key 裡面,有某個key 不存在,那麼這個key 回傳特殊值nil 。

1
NArray Redis.mget(Array keys);

呼叫參數:

  • keys: Array, 指定要查詢的key 陣列

回傳結果:

  • NArray, 一個包含所有給定key 的值的列表

傳回所有(一個或多個)給定key 的值。如果給定的key 裡面,有某個key 不存在,那麼這個key 回傳特殊值nil 。

1
NArray Redis.mget(...keys);

呼叫參數:

  • keys: ..., 指定要查詢的key 列表

回傳結果:

  • NArray, 一個包含所有給定key 的值的列表

getset

將給定key 的值設為value ,並傳回key 的舊值(old value)

1 2
Buffer Redis.getset(Buffer key, Buffer value);

呼叫參數:

  • key:Buffer, 指定要查詢修改的key
  • value:Buffer, 指定修改的數值

回傳結果:

  • Buffer, 傳回給定key 的舊值

decr

將key 所儲存的值減去減量

1 2
Long Redis.decr(Buffer key, Long num = 1);

呼叫參數:

  • key:Buffer, 指定要修改的key
  • num: Long, 指定要減去的數值

回傳結果:

  • Long, 減去num 之後,key 的值

incr

將key 所儲存的值加上增量

1 2
Long Redis.incr(Buffer key, Long num = 1);

呼叫參數:

  • key:Buffer, 指定要修改的key
  • num: Long, 指定要加上的數值

回傳結果:

  • Long, 加上num 之後,key 的值

setBit

對key 所儲存的字串值,設定或清除指定偏移量上的位元(bit)

1 2 3
Integer Redis.setBit(Buffer key, Integer offset, Integer value);

呼叫參數:

  • key:Buffer, 指定要修改的key
  • offset: Integer, 指定修改的位元偏移
  • value: Integer, 指定設定或清除的參數,可以是0 也可以是 1

回傳結果:

  • Integer, 指定偏移量原來儲存的位

getBit

對key 所儲存的字串值,取得指定偏移量上的位元(bit)

1 2
Integer Redis.getBit(Buffer key, Integer offset);

呼叫參數:

  • key:Buffer, 指定要查詢的key
  • offset: Integer, 指定查詢的位元偏移

回傳結果:

  • Integer, 字串值指定偏移量上的位元(bit)

exists

檢查給定key 是否存在

1
Boolean Redis.exists(Buffer key);

呼叫參數:

  • key:Buffer, 指定要關聯的key

回傳結果:

  • Boolean, 若key 存在,回傳True,否則回傳False

type

傳回key 所儲存的值的類型

1
String Redis.type(Buffer key);

呼叫參數:

  • key:Buffer, 指定要查詢的key

回傳結果:

  • String, 傳回key 所儲存的值的類型,可能的值為none(key不存在) string(字串) list(列表) set(集合) zset(有序集)hash(哈希表)

keys

尋找所有符合給定模式pattern 的key

1
NArray Redis.keys(String pattern);

呼叫參數:

  • pattern: String, 指定查詢模式

回傳結果:

  • NArray, 符合給定模式的key 列表

del

刪除給定的一個或多個key,不存在的key 會被忽略

1
Integer Redis.del(Array keys);

呼叫參數:

  • keys: Array, 指定要刪除的key 數組

回傳結果:

  • Integer, 被刪除key 的數量

刪除給定的一個或多個key,不存在的key 會被忽略

1
Integer Redis.del(...keys);

呼叫參數:

  • keys: ..., 指定要刪除的key 列表

回傳結果:

  • Integer, 被刪除key 的數量

expire

為給定key 設定生存時間,當key 過期時,它會被自動刪除

1 2
Boolean Redis.expire(Buffer key, Long ttl);

呼叫參數:

  • key:Buffer, 指定要設定的key
  • ttl: Long, 以毫秒為單位為key 設定生存時間

回傳結果:

  • Boolean, 若key 存在,回傳True,否則回傳False

ttl

返回給定key 的剩餘生存時間

1
Long Redis.ttl(Buffer key);

呼叫參數:

  • key:Buffer, 指定要查詢的key

回傳結果:

  • Long, 以毫秒為單位,返回key 的剩餘生存時間,當key 不存在時,返回-2,當key 存在但沒有設定剩餘生存時間時,返回-1

persist

移除給定key 的生存時間,將這個key 從『易失的』(帶生存時間key )轉換成『持久的』(一個不帶生存時間、永不過期的key)

1
Boolean Redis.persist(Buffer key);

呼叫參數:

  • key:Buffer, 指定要設定的key

回傳結果:

  • Boolean, 若key 存在,回傳True,否則回傳False

rename

將key 改名為new​​key,當key 和newkey 相同,或key 不存在時,回傳一個錯誤

1 2
Redis.rename(Buffer key, Buffer newkey);

呼叫參數:

  • key:Buffer, 指定要改名的key
  • newkey:Buffer, 指定要改名的目的key

renameNX

當且僅當newkey 不存在時,將key 改名為new​​key,當key 不存在時,回傳一個錯誤

1 2
Boolean Redis.renameNX(Buffer key, Buffer newkey);

呼叫參數:

  • key:Buffer, 指定要改名的key
  • newkey:Buffer, 指定要改名的目的key

回傳結果:

  • Boolean, 修改成功時,回傳True,如果newkey 已經存在,回傳False

sub

訂閱給定的一個頻道的訊息,當訊息發生時自動呼叫func,func 包含兩個參數,依序為channel 和message,同一頻道同一函數只會回調一次

1 2
Redis.sub(Buffer channel, Function func);

呼叫參數:

  • channel:Buffer, 指定訂閱的頻道名稱
  • func: Function, 指定回呼函數

訂閱給定的一組頻道的訊息,當訊息發生時自動呼叫對應的回呼函數,同一頻道相同函數只會回呼一次

1
Redis.sub(Object map);

呼叫參數:

  • map: Object, 指定頻道映射關係,物件屬性名稱將作為頻道名稱,屬性的值將作為回呼函數

unsub

退訂給定的頻道的全部回調

1
Redis.unsub(Buffer channel);

呼叫參數:

  • channel:Buffer, 指定退訂的頻道名稱

退訂給定的頻道的指定回呼函數

1 2
Redis.unsub(Buffer channel, Function func);

呼叫參數:

  • channel:Buffer, 指定退訂的頻道名稱
  • func: Function, 指定取消訂閱的回呼函數

退訂一組給定的頻道的全部回調

1
Redis.unsub(Array channels);

呼叫參數:

  • channels: Array, 指定取消訂閱的頻道數組

退訂給定的一組頻道的指定回呼函數

1
Redis.unsub(Object map);

呼叫參數:

  • map: Object, 指定頻道映射關係,物件屬性名稱將作為頻道名稱,屬性的值將作為回呼函數

psub

依照範本訂閱一組頻道的信息,當訊息發生時自動呼叫func,func 包含三個參數,依序為channel,message 和pattern,同一範本同一函式只會回呼一次

1 2
Redis.psub(String pattern, Function func);

呼叫參數:

  • pattern: String, 指定訂閱的頻道模板
  • func: Function, 指定回呼函數

訂閱給定的一組頻道範本的訊息,當訊息發生時自動呼叫對應的func,同一頻道相同函數只會回呼一次

1
Redis.psub(Object map);

呼叫參數:

  • map: Object, 指定頻道映射關係,物件屬性名稱將作為頻道模板,屬性的值將作為回呼函數

unpsub

退訂給定模板的頻道的全部回調

1
Redis.unpsub(String pattern);

呼叫參數:

  • pattern: String, 指定取消訂閱的頻道模板

退訂給定模板的頻道的指定回調函數

1 2
Redis.unpsub(String pattern, Function func);

呼叫參數:

  • pattern: String, 指定取消訂閱的頻道模板
  • func: Function, 指定取消訂閱的回呼函數

退訂一組給定模板的頻道的全部回調

1
Redis.unpsub(Array patterns);

呼叫參數:

  • patterns: Array, 指定發佈的頻道範本數組

退訂一組模板的頻道的指定回呼函數

1
Redis.unpsub(Object map);

呼叫參數:

  • map: Object, 指定頻道映射關係,物件屬性名稱將作為頻道模板,屬性的值將作為回呼函數

pub

將訊息message 傳送到指定的頻道channel

1 2
Integer Redis.pub(Buffer channel, Buffer message);

呼叫參數:

  • channel:Buffer, 指定發布的頻道
  • message:Buffer, 指定發布的消息

回傳結果:

  • Integer, 接收此訊息的客戶端數量

getHash

取得指定key 的Hash 對象,此物件為包含指定key 的客戶端,只有呼叫其方法才會操作資料庫

1
RedisHash Redis.getHash(Buffer key);

呼叫參數:

  • key:Buffer, 指定要取得的key

回傳結果:

  • RedisHash, 傳回包含指定key 的Hash 對象

getList

取得指定key 的List 對象,此物件為包含指定key 的客戶端,只有呼叫其方法才會操作資料庫

1
RedisList Redis.getList(Buffer key);

呼叫參數:

  • key:Buffer, 指定要取得的key

回傳結果:

  • RedisList, 傳回包含指定key 的List 對象

getSet

取得指定key 的Set 對象,此物件為包含指定key 的客戶端,只有呼叫其方法才會操作資料庫

1
RedisSet Redis.getSet(Buffer key);

呼叫參數:

  • key:Buffer, 指定要取得的key

回傳結果:

  • RedisSet, 傳回包含指定key 的Set 對象

getSortedSet

取得指定key 的SortedSet 對象,此物件為包含指定key 的客戶端,只有呼叫其方法才會操作資料庫

1
RedisSortedSet Redis.getSortedSet(Buffer key);

呼叫參數:

  • key:Buffer, 指定要取得的key

回傳結果:


dump

序列化給定key ,並傳回被序列化的值,使用restore 指令可以將這個值反序列化為Redis 鍵

1
Buffer Redis.dump(Buffer key);

呼叫參數:

  • key:Buffer, 指定要序列化的key

回傳結果:

  • Buffer, 傳回序列化之後的值,如果key 不存在,那麼傳回null

restore

反序列化給定的序列化值,並將它和給定的key 關聯

1 2 3
Redis.restore(Buffer key, Buffer data, Long ttl = 0);

呼叫參數:

  • key:Buffer, 指定要反序列化的key
  • data:Buffer, 指定要反序列化的數據
  • ttl: Long, 以毫秒為單位為key 設定生存時間;如果ttl 為0 ,那麼不設定生存時間

close

關閉目前資料庫連線或事務

1
Redis.close();

toString

傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現

1
String Redis.toString();

回傳結果:

  • String, 傳回物件的字串表示

toJSON

傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合

1
Value Redis.toJSON(String key = "");

呼叫參數:

  • key: String, 未使用

回傳結果:

  • Value, 傳回包含可JSON 序列化的值