嵌入式 redis mysql_ledisdb:支持类redis接口的嵌入式nosql

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真没啥意义。

下面是一些简单的例子:

kvdb.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)

listdb.LPush(key, value1, value2, value3)

db.RPush(key, value4, value5, value6)

db.LRange(key, 1, 10)

db.LIndex(key, 10)

db.LLen(key)

hashdb.HSet(key, field1, value1)

db.HMSet(key, FVPair{field1, value1}, FVPair{field2, value2})

db.HGet(key, field1)

db.HGetAll()

db.HKeys()

zsetdb.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现在可以支持嵌入式使用。你可以将其作为一个独立的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真没啥意义。 下面是一些简单的例子: kvdb.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) listdb.LPush(key, value1, value2, value3) db.RPush(key, value4, value5, value6) db.LRange(key, 1, 10) db.LIndex(key, 10) db.LLen(key) hashdb.HSet(key, field1, value1) db.HMSet(key, FVPair{field1, value1}, FVPair{field2, value2}) db.HGet(key, field1) db.HGetAll() db.HKeys() zsetdb.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)
经验分享 程序员 微信小程序 职场和发展