基于 syndtr/goleveldb 的高级封装,提供类 Redis 的接口和功能。
- 支持数据过期时间
- 支持计数器操作
- 支持布隆过滤器
- 简单易用的 API
go get github.com/leafney/rose-leveldbdb, err := rleveldb.NewLevelDB("./data")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 设置数据
db.SetS("key", "value")
// 设置带过期时间的数据
db.XSetExS("key", "value", time.Hour)
// 计数器操作
count,_ := db.XIncr("counter")NewLevelDB(dbPath string) (*LevelDB, error)- 创建数据库实例NewBloomFilter(dbPath string, bits int) (*LevelDB, error)- 创建带布隆过滤器的数据库实例Close() error- 关闭数据库连接Get(key string) ([]byte, error)- 获取数据GetS(key string) (string, error)- 获取字符串数据Set(key string, value []byte) error- 设置数据SetS(key string, value string) error- 设置字符串数据Exists(key string) bool- 检查 key 是否存在Del(key string) error- 删除数据
XGet(key string) ([]byte, error)- 获取带过期时间的数据XGetS(key string) (string, error)- 获取带过期时间的字符串数据XSet(key string, value []byte) error- 设置数据XSetS(key string, value string) error- 设置字符串数据XSetEx(key string, value []byte, expires time.Duration) error- 设置带过期时间的数据XSetExS(key string, value string, expires time.Duration) error- 设置带过期时间的字符串数据XSetExSec(key string, value []byte,seconds int64) error- 设置带过期时间的缓存数据(使用秒数)XSetExSecS(key string,value string,seconds int64) error- 设置带过期时间的字符串数据(使用秒数)XTTL(key string) (int64, error)- 获取剩余生存时间XExpire(key string, expires time.Duration) error- 设置过期时间XExpireSec(key string, seconds int64) error- 设置过期时间(秒)XExpireAt(key string, tm time.Time) error- 设置过期时间点
XIncr(key string) (int64, error)- 将 key 中存储的数字值加 1XIncrBy(key string, increment int64) (int64, error)- 将 key 中存储的数字值增加指定的值XDecr(key string) (int64, error)- 将 key 中存储的数字值减 1XDecrBy(key string, decrement int64) (int64, error)- 将 key 中存储的数字值减少指定的值