Skip to content

solar-systems/Jodis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jodis(Java Object Dictionary Server)

Jodis是一个基于内存的NoSQL键值数据库,支持独立部署和嵌入式使用。

Overview

内存k-v数据库

数据读写基于内存。

支持多种数据结构

  1. JodisString 用于存储普通的字符串,底层基于java.lang.String。
  2. JodisList 列表对象,底层基于java.util.List;
  3. JodisHash 哈希表结构,底层基于java.util.Map;
  4. JodisSet 集合结构,底层基于java.util.Set;
  5. JodisSortedSet 有序集合结构,底层基于java.util.Map和跳跃表。

单线程Reactor服务器

同时支持多个连接,命令执行为单线程。

兼容Redis RESP2协议

兼容大部分Redis命令,具体支持的命令如下:

SERVER: PING, FLUSHDB, DBSIZE

KEY: DEL, TYPE, EXISTS, KEYS, RANDOMKEY, RENAME, RENAMENX, EXPIRE, EXPIREAT, TTL

JODIS_STRING: GET, SET, GETSET, GETRANGE, MGET, MSET, SETEX, SETNX, SETRANGE, STRLEN, INCR, INCRBY, INCRBYFLOAT, DECR, DECRBY, APPEND

JODIS_LIST: LINDEX, LINSERT, LPOP, LPUSH, LRANGE, LSET, RPOP, RPUSH

JODIS_HASH: HDEL, HEXISTS, HGET, HGETALL, HINCRBY, HINCRBYFLOAT, HKEYS, HVALS,, HLEN, HMGET, HMSET, HSETNX, HSCAN

JODIS_ZSE: ZADD, ZCARD, ZCOUNT, ZSCORE, ZREM

磁盘持久化

  1. WAL日志 类似于Redis的AOF.
  2. JDB二进制Dump 类似于Redis的RDB。

TODO List

  1. LRU;
  2. TTL;
  3. IO优化;
  4. WAL rewrite后台任务和JDB后台任务;
  5. 代码完善优化,持续重构,完善单元测试,JMH测试;
  6. 文档和Example编写;
  7. Docker支持。

Releases

No releases published

Packages

No packages published

Languages