github.com/jeffjen/go-libkv@v0.0.0-20151212051932-5df59a45a168/README.md (about) 1 # go-libkv 2 [](https://raw.githubusercontent.com/jeffjen/go-libkv/master/LICENSE) 3 [](https://godoc.org/github.com/jeffjen/go-libkv) 4 [](https://travis-ci.org/jeffjen/go-libkv) 5 [](https://gitter.im/jeffjen/go-libkv?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 6 7 An embedded framework for handling key value written in pure golang. 8 9 - Provides a straight forward interface for handling *volatile* key value storage 10 - Added flavor for time based resource management (EXPIRE, TTL) 11 - Broadcast key space event to subscribed goroutines. 12 13 ## libkv 14 15 Embedded In memory **volatile** KV storage inspired by [REDIS](http://redis.io/). 16 17 ### Supported operations 18 19 - Set, Setexp 20 - Get 21 - Getset 22 - Getexp 23 - Expire 24 - TTL 25 - Del 26 - Lpush 27 - Ltrim 28 - Lrange 29 - List, Listexp 30 - Watch 31 32 ### Experimental feature: 33 Snapshot creation truncates current kv file object, so no version support. 34 35 - Save 36 Takes a snapshot of the current kv object to disk. The rule of encoding 37 follows golang package [gob](https://golang.org/pkg/encoding/gob/). 38 - Load 39 Loads snapshot from disk. 40 41 - IterateR 42 Move alone the keyspace and retrieve key value 43 44 - IterateW 45 Move alone the keyspace and send modify instructions along 46 47 ## timer 48 49 Schedule work to run at specific time once, or repeat the task at set interval. 50 It uses implementation in [container/heap](http://golang.org/pkg/container/heap/) 51 to setup min-heap on the TTL of the scheduled item.