https://github.com/xuender/levelhub
levelhub is a wrapper of leveldb which supports multi-tenancy
https://github.com/xuender/levelhub
go golang level-hub leveldb
Last synced: 3 months ago
JSON representation
levelhub is a wrapper of leveldb which supports multi-tenancy
- Host: GitHub
- URL: https://github.com/xuender/levelhub
- Owner: xuender
- License: apache-2.0
- Created: 2018-10-16T01:19:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-10-17T01:05:13.000Z (over 6 years ago)
- Last Synced: 2025-02-09T19:41:00.354Z (4 months ago)
- Topics: go, golang, level-hub, leveldb
- Language: Go
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# README
levelhub is a wrapper of leveldb which supports multi-tenancy
## Installation
```shell
go get -u github.com/xuender/levelhub
```## Usage
### Default
```go
package mainimport "github.com/xuender/levelhub"
func main() {
hub := levelhub.NewLevelHub("dbpath", nil)
defer hub.Close()
hub.Put(1, []byte("key"), []byte("val"), nil)
hub.Put(2, []byte("key"), []byte("val"), nil)
}
```### Expire
```go
hub := levelhub.NewLevelHub("dbpath", &levelhub.Options{
Expire: time.Second * 3,
Min: 1, // More than Min settings will trigger the expiration
})
defer hub.Close()
hub.Put(1, []byte("key"), []byte("val"), nil)
hub.Put(2, []byte("key"), []byte("val"), nil)
fmt.Println(hub.IsOpen(1), hub.IsOpen(2))
time.Sleep(time.Second * 10)
fmt.Println(hub.IsOpen(1), hub.IsOpen(2))
```