ledisdb:支持類redis接口的嵌入式nosql
阿新 • • 發佈:2019-04-07
member air css borde 意義 onf eight 類型 open
ledisdb如今能夠支持嵌入式使用。
你能夠將其作為一個獨立的lib(相似leveldb)直接嵌入到你自己的應用中去,而無需在啟動單獨的服務。
ledisdb提供的API仍然相似redis接口。
首先。你須要創建ledis對象:
import "github.com/siddontang/ledisdb/ledis" configJson = []byte(‘{ "data_db" : { "path" : "/tmp/testdb", "compression":true, "block_size" : 32768, "write_buffer_size" : 2097152, "cache_size" : 20971520 } } ‘) l, _ := ledis.Open(configJson)
data_db就是數據存儲的leveldb位置,簡單起見,所有的size配置所有使用byte作為單位。
然後我們選擇一個db使用。
db, _ := l.Select(0)
相似redis,我們也僅僅支持數字類型的db,最多16個db,索引範圍為[0-15]。支持太多的db真沒啥意義。
以下是一些簡單的樣例:
kv
db.Set(key, value) db.Get(key) db.SetNX(key, value) db.Incr(key) db.IncrBy(key, 10) db.Decr(key) db.DecrBy(key, 10) db.MSet(KVPair{key1, value1}, KVPair{key2, value2}) db.MGet(key1, key2)
list
db.LPush(key, value1, value2, value3)
db.RPush(key, value4, value5, value6)
db.LRange(key, 1, 10)
db.LIndex(key, 10)
db.LLen(key)
hash
db.HSet(key, field1, value1)
db.HMSet(key, FVPair{field1, value1}, FVPair{field2, value2})
db.HGet(key, field1)
db.HGetAll()
db.HKeys()
zset
db.ZAdd(key, ScorePair{score1, member1}, ScorePair{score2, member2}) db.ZCard(key) //range by score [0, 100], withscores = true and no limit db.ZRangeByScore(key, 0, 100, true, 0, -1) //range by score [0, 100], withscores = true and limit offset = 10, count = 10 db.ZRangeByScore(key, 0, 100, true, 10, 10) db.ZRank(key, member1) db.ZCount(key, member1)
ledisdb的源代碼在這裏https://github.com/siddontang/ledisdb。歡迎反饋。
ledisdb:支持類redis接口的嵌入式nosql