分享一个key-value单点轻量化服务,支持数据持久化、key值监听通知rpc客户端

llr104 · · 762 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

# lightkv 轻量化key-value服务 https://github.com/llr104/lightkv ## 启动server ```bash go run main/server.go ``` - 会启动一个api服务(http://localhost:9981) 和一个rpc服务(9980端口) - http://localhost:9981/put?key=add1&value=addvalue1 api新增一条kv,key为add1,value为addvalue1,kv不过期 - http://localhost:9981/put?key=add2&value=addvalue2&expire=100 api新增一条kv,key为add2,value为addvalue2,100秒后kv过期 - http://localhost:9981/del/add2 api删除key为add2的kv - http://localhost:9981/get/add1 api获取key为add1的kv ## 启动测试rpc客户端 ```bash go run main/client.go ``` ## rpc 客户端用法 ```go c := server.NewClient() c.Start() //添加kv c.Put("test", "test_value", 0) c.Put("test1/tttt", "test1_value", 0) c.Put("test2", "test2_value", 20) //删除kv c.Del("test") v := c.Get("test2") fmt.Printf("test2:%s\n", v) //监听key值,发生变化回调通知 c.WatchKey("watch1", func(k string, v string, t cache.OpType) { fmt.Printf("watch key:%s, value:%s, type:%d\n", k, v, t) }) //key值发生变化回调通知 c.WatchKey("unwatch", func(k string, v string, t cache.OpType) { fmt.Printf("watch key:%s, value:%s, type:%d\n", k, v, t) }) //取消监听key值的变化 c.UnWatchKey("unwatch") c.Close() ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

762 次点击  
加入收藏 微博
4 回复  |  直到 2020-06-05 10:15:58
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传