github.com/jeffjen/go-libkv@v0.0.0-20151212051932-5df59a45a168/README.md (about)

     1  # go-libkv
     2  [![license](http://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/jeffjen/go-libkv/master/LICENSE)
     3  [![GoDoc](https://godoc.org/github.com/jeffjen/go-libkv?status.png)](https://godoc.org/github.com/jeffjen/go-libkv)
     4  [![Build Status](https://travis-ci.org/jeffjen/go-libkv.svg?branch=master)](https://travis-ci.org/jeffjen/go-libkv)
     5  [![Join the chat at https://gitter.im/jeffjen/go-libkv](https://badges.gitter.im/Join%20Chat.svg)](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.