KV replication based data distribution
rsync inspired, REDIS optimized, Key-Value based, WAN channels data distribution technology
Project is a prototype (alpha-beta) version completed but proper code restructure is required.
Reading some topics like https://www.ardanlabs.com/blog/2013/08/organizing-code-to-support-go-get.html
and experimenting on get/build/install functionalities may took some days
Data distribution from source to consumers could be quite challenging task. It is usually complicated by QOS requirements, limited bandwith for data, need to support for multiple clients and technologies.
There are multiple ways to solve it. Here is a proposed solution based on key-value storages replication. Database replication allways being used as one of the ways to distribute data. Key value storages are quite fiting for such purpose.
This project is focusing on universal key value based replication solution.
Not including server internal data distribusion pub/sub
```shell script
go get “github.com/cespare/xxhash”
go get “github.com/codebear4/ttlcache”
go get “github.com/cxuhua/lzma”
go get “github.com/emirpasic/gods/maps/treemap”
go get “github.com/emirpasic/gods/sets/treeset”
go get “github.com/golang/protobuf/proto”
go get “github.com/gorilla/mux”
go get “github.com/gorilla/websocket”
go get “github.com/op/go-logging”
###Redis keys versioning
### Redis replication utility
Programm meant to replicate data one to many REDIS instances.
Over WAN link with QOS and Compression
Usage of REPLICATOR:
-TLSCA path
Certificate authority (default “ca.pem”)
-TLSCRT path
X.509 Certificate (default “certificate.crt,certificate.key”)
-databases id list
List of databases like 5,0,3,8
-hub ip:port
Server address (default “:3333”)
-lv
Ignore source version - create version chain locally
-nowait
Don’t wait for client requests termination
-plaindb id list
List of version less databases like 3,8
-redis ip:port
Redis address list (default “127.0.0.1:6379”)
-sentinel
Use sentinel
-server switch client and server mode
Listen for requests
```