A lightweight k-v store based on golang and takes example by redis(C code version).
An awesome README template to jumpstart your projects!
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
本篇README.md面向开发者
- 支持数据类型:string,zlist,zset,zsortedSet
- Reactor 模式
- 持久化机制:支持RDB和AOF
- 支持集群
- 支持超时失效
- API名称完美复刻redis,降低学习成本
- 优雅退出:client/server接受sigxxx信号结束,并执行持久化存盘
- 支持订阅发布
- 完成set,get,del,lpush,llen,lrange,append
- 正在做: RDB and AOF
- 传输数据make([]byte,len)==[0,0,0,0,0,...,0] 需要截取[:n]否则会有冗余的0
- conn,err := netListen.Accept()只接受一次连接
- 优雅接受signal:起一个goroutine,因为监听signal不能阻塞主goroutine,让它在新的goroutine中阻塞等待,一但有信号再经过cpu调度处理signal
- 可以考虑之后用共享内存/整理内存算法提高内存利用率,因为不整理会有内存碎片(golang内存管理不佳)
请将所有链接中的“shaojintian/gKV”改为“your_github_name/your_repository”
- golang >=1.12.5
- xxxxx x.x.x
- Get a free API Key at https://example.com
- Clone the repo
git clone https://github.com/shaojintian/gKV.git
- Start server && client
go run server_main.go
go run client_main.go
run each command in different terminal
- How to terminate client/server
press on Ctrl+C to close client/server gracefully.
eg:
请阅读ARCHITECTURE.md 查阅为该项目的架构。
暂无
- xxxxx
- xxxxx
- xxxxx
- xxxxx
- xxxxx
请阅读CONTRIBUTING.md 查阅为该项目做出贡献的开发者。
贡献使开源社区成为一个学习、激励和创造的绝佳场所。你所作的任何贡献都是非常感谢的。
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
该项目使用Git进行版本管理。您可以在repository参看当前可用版本。
E-mail: [email protected]
知乎:笃行er qq:1075803623
您也可以在贡献者名单中参看所有参与该项目的开发者。
该项目签署了MIT 授权许可,详情请参阅 LICENSE.txt
- GitHub Emoji Cheat Sheet
- Img Shields
- Choose an Open Source License
- GitHub Pages
- Animate.css
- xxxxxxxxxxxxxx
If you like this project and want to sponsor the author, you can reward the author using Wechat or Alipay by scanning the following QR code.