zxf20180725 / FoxyBall

nosql内存数据库

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FoxyBall(目前正在开发中,请勿用于实际项目)

简介

FoxyBall是用C语言开发的一款nosql内存数据库,并且支持Linux和Windows操作系统。
FoxyBall服务采用C/S架构,目前有python的客户端和windows、linux的服务端。

特点

  • 高性能,FoxyBall的数据总是存储在内存中的,并且核心数据结构是hash表。
  • 持久化,用户不用担心内存中数据丢失的问题,FoxyBall会定期持久化数据到磁盘中。
  • 分布式,FoxyBall是支持分布式部署的。
  • 简易性,FoxyBall不论是安装部署还是使用,都非常简单,命令一共就14个。

内部实现

数据结构

FoxyBall的数据存储使用的是hash表。hash冲突的解决策略是hash数组+链表的形式。
FoxyBall的过期键采用双向链表存储。

淘汰策略

FoxyBall采用主动删除和惰性删除两种策略。
主动删除:FoxyBall将定期检查设置过expire的key,将过期的key主动删除。
惰性删除:当用户访问一个key的时候,FoxyBall总会先检查该key是否过期,如果过期就删除。

About

nosql内存数据库


Languages

Language:C 87.8%Language:Python 12.2%