Pandis是一个模仿Redis实现的分布式缓存系统,基于Java实现。
服务端
运行
server.PandisServer.main()
服务端
运行
cli.ClientCli.main()
然后在终端中输入命令即可
初步项目想要实现以下功能:
- 基本的单机存储功能,实现不同特点的kv数据存储结构
- 基于Reactor模式的事件分发系统
- 分布式功能
项目架构暂时按以下模块划分:
- event
- cache
- cluster
- common
- store
- 字符串
- SDS
- 列表
- ZIPLIST
- 集合
- 哈希表
- 有序列表
- 字符串
- store
- ...
- 基本存储结构
- String
- List
- Set
- ZSet
- Hash
- 数据库存储功能
- 键值存储
- 键值过期清除
- 惰性清除
- 定期清除
- 网络事件处理
- 事件循环
- IO事件
- 定时事件
- 系统配置模块
- 客户端
- 命令行客户端初步完成
- 命令
- append
- del
- echo
- exists
- expire
- expireat
- get
- persist
- pexpire
- pexpireat
- ping
- psetex
- psubscribe
- pttl
- publish
- pubsub
- punsubscribe
- select
- set
- setex
- setnx
- strlen
- subscribe
- ttl
- unsubscribe
- 两种持久化方式
- 发布/订阅功能
- 发布订阅相关功能