Jodis是一个基于内存的NoSQL键值数据库,支持独立部署和嵌入式使用。
数据读写基于内存。
- JodisString 用于存储普通的字符串,底层基于java.lang.String。
- JodisList 列表对象,底层基于java.util.List;
- JodisHash 哈希表结构,底层基于java.util.Map;
- JodisSet 集合结构,底层基于java.util.Set;
- JodisSortedSet 有序集合结构,底层基于java.util.Map和跳跃表。
同时支持多个连接,命令执行为单线程。
兼容大部分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
- WAL日志 类似于Redis的AOF.
- JDB二进制Dump 类似于Redis的RDB。
- LRU;
- TTL;
- IO优化;
- WAL rewrite后台任务和JDB后台任务;
- 代码完善优化,持续重构,完善单元测试,JMH测试;
- 文档和Example编写;
- Docker支持。