owlcache 是一款由Go编写的轻量级、高性能、无中心分布式的Key/Value内存缓存型的数据共享应用(一定场景下可以作为轻量型数据库来使用)。
我最早的想法就是实现一个数据共享应用,它可以非常轻松的构建一个高效的数据共享集群。在集群中的数据,它们可以是共同拥有的,也可以是一个节点拥有其它节点随时来获取。集群里面的所有数据首先要是可“共享”的、可“查阅”的数据。
猫头鹰机灵又可爱。它们脑袋的活动范围为270°。
TCP 命令: get <key>
get <key>
get hello
HTTP 注意:HTTP获取数据不用密码验证,只有其他更改数据的操作需要验证身份。
http://127.0.0.1:7721/data/?cmd=get&key=hello
响应结果例子:
{ "Cmd": "get", "Status": 200, "Results": "SUCCESS", "Key": "hello", "Data": "world", "ResponseHost": "127.0.0.1:7721", "KeyCreateTime": "2019-04-24T18:05:10.9132377+08:00" }
http://127.0.0.1:7721/group_data/?cmd=get&key=hello
{ "Cmd": "get", "Status": 200, "Results": "SUCCESS", "Key": "hello", "Data": [ { "Address": "127.0.0.1:7723", "Data": "world7723", "KeyCreateTime": "2019-04-10T13:43:01.6576413+08:00", "Status": 200 }, { "Address": "127.0.0.1:7721", "Data": "world7721", "KeyCreateTime": "2019-04-09T17:50:59.458104+08:00", "Status": 200 }, { "Address": "127.0.0.1:7725", "Data": "world7725", "KeyCreateTime": "2019-04-08T14:32:20.6934487+08:00", "Status": 200 } ], "ResponseHost": "127.0.0.1:7721", "KeyCreateTime": "0001-01-01T00:00:00Z" }
每个节点数据都是独立的,集群中重复Key的数据不会被删除(owlcache默认的集群方式),查询时会得到一个根据时间排序的数据列表,最新数据优先展示。