Skip to content
/ pot Public

Golang版本k-v存储,支持set、get、ttl、exists、expire等方法,支持远端调用。(完善中)

License

Notifications You must be signed in to change notification settings

swxctx/pot

Repository files navigation

Pot

  • 基于Golang实现的k-v缓存数据库,目前规划为轻量、便捷、小容量,用于在简单业务中进行一些临时数据、轻量逻辑的实现。
  • 接下来会逐步进行完善,实现完善的k-v存储DB

功能规划

  • ✅ 基础架构
  • ✅ 基础存储功能
  • ✅ Key支持有效期设置
  • ✅ 过期Key清除功能
  • ✅ 返回数据类型处理
  • ✅ 远程调用支持
  • Go Library
  • Java Library
  • Python Library
  • 支持备份到磁盘
  • 支持重启数据恢复
  • 支持基础数据、有序集合、无序集合
  • 支持多机分布式部署

架构简述

  • Pot全系工具都是采用的Go语言开发,全部使用的是Go原生的库及内容,没有任何第三方库的调用。

  • Pot主要由Pot ServerPot ClientPot Base组成

  • Pot Base:实现数据缓存相关的基本操作库

  • Pot Server:基于TCP协议实现的可远程部署调用的应用

  • Pot Client:主要分为两类,一类是Pot CLI、一类是Pot Library,其中Pot CLI 为终端调用工具,而Pot Library则包含各种编程语言远程连接调用Pot Server的工具库

  • 可以通过下面的架构图做个简要的了解,详细的可以通过源代码进行分析查看

远程调用

远程调用实现方案,即单独部署一台Pot存储服务,业务服务通过TCP连接后进行远程调用,该方案适用于业务服务分布式部署、多机部署、缓存同步的情况。

具体使用方法可通过下面的链接进行深入了解

Pot Server运行效果

Pot CLI运行效果

单机调用

Golang库
单机使用即针对于服务器单台机器部署的情况,这种情况下,不需要多台机器的业务服务进行缓存同步,那么直接引用当前的实现库也是可以的。也可以使用 gset 实现,在远程调用时推荐使用Pot

Go语言单机缓存服务可以参照此处进行工具库使用

About

Golang版本k-v存储,支持set、get、ttl、exists、expire等方法,支持远端调用。(完善中)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages