An open API service indexing awesome lists of open source software.

https://github.com/leprosus/golang-ttl-map

In-memory key-value storage with file snapshots
https://github.com/leprosus/golang-ttl-map

golang map storage ttl ttl-cache

Last synced: 3 months ago
JSON representation

In-memory key-value storage with file snapshots

Awesome Lists containing this project

README

          

# Golang in-memory key-value storage with time-to-life

## Create new map

```go
import ttl_map "github.com/leprosus/golang-ttl-map"

heap := ttl_map.New()
heap.Path("/path/to/auto-save-file.tsv")
```

## Set/Get

```go
heap.Set("key", "value", 60)

value := heap.Get("key")
```

## Save/Restore

```go
heap.Save()

heap.Restore()
```

## Save/Restore complex data structure

```go
var m = map[string]string{}
m["key"] = "value"

heap.Set("obj", m, 60)

heap.Support(map[string]string)

heap.Save()

heap.Restore()
```

## List all methods

* New() - creates new map
* Path(filePath) - sets file path to save/autosave/restore
* Set(key, value, ttl) - adds value by key with ttl in seconds
* Get(key) - returns value or empty string
* Del(key) - deletes value by key
* Range(fn func(key string, value string, ttl int64)) - iterates all actual data
* Support(struct) - registers new structure support (the method is important in a case with complex structure or map)
* Save() - saves map in tsv file
* Restore() - restores map from tsv file