绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
ledisdb:支持类redis接口的嵌入式nosql
2022-04-18 11:10:32

ledisdb如今能够支持嵌入式使用。

你能够将其作为一个独立的lib(相似leveldb)直接嵌入到你自己的应用中去,而无需在启动单独的服务。

ledisdb提供的API仍然相似redis接口。

首先。你须要创建ledis对象:

  1. import "github.com/siddontang/ledisdb/ledis"
  2. configJson = []byte('{
  3. "data_db" :
  4. {
  5. "path" : "/tmp/testdb",
  6. "compression":true,
  7. "block_size" : 32768,
  8. "write_buffer_size" : 2097152,
  9. "cache_size" : 20971520
  10. }
  11. }
  12. ')
  13. l, _ := ledis.Open(configJson)

data_db就是数据存储的leveldb位置,简单起见,所有的size配置所有使用byte作为单位。

然后我们选择一个db使用。

db, _ := l.Select()

相似redis,我们也仅仅支持数字类型的db,多16个db,索引范围为[0-15]。支持太多的db真没啥意义。

以下是一些简单的样例:

kv

  1. db.Set(key, value)
  2. db.Get(key)
  3. db.SetNX(key, value)
  4. db.Incr(key)
  5. db.IncrBy(key, 10)
  6. db.Decr(key)
  7. db.DecrBy(key, 10)
  8. db.MSet(KVPair{key1, value1}, KVPair{key2, value2})
  9. db.MGet(key1, key2)

list

  1. db.LPush(key, value1, value2, value3)
  2. db.RPush(key, value4, value5, value6)
  3. db.LRange(key, 1, 10)
  4. db.LIndex(key, 10)
  5. db.LLen(key)

hash

  1. db.HSet(key, field1, value1)
  2. db.HMSet(key, FVPair{field1, value1}, FVPair{field2, value2})
  3. db.HGet(key, field1)
  4. db.HGetAll()
  5. db.HKeys()

zset

  1. db.ZAdd(key, ScorePair{score1, member1}, ScorePair{score2, member2})
  2. db.ZCard(key)
  3. //range by score [0, 100], withscores = true and no limit
  4. db.ZRangeByScore(key, 0, 100, true, 0, -1)
  5. //range by score [0, 100], withscores = true and limit offset = 10, count = 10
  6. db.ZRangeByScore(key, 0, 100, true, 10, 10)
  7. db.ZRank(key, member1)
  8. db.ZCount(key, member1)

ledisdb的源代码在这里https://github.com/siddontang/ledisdb。欢迎反馈。

转载于:https://www.cnblogs.com/mqxnongmin/p/10665626.html

分享好友

分享这个小栈给你的朋友们,一起进步吧。

LedisDB
创建时间:2022-04-18 10:59:57
LedisDB
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • gaokeke123
    专家
戳我,来吐槽~