{"repo":"solar-systems/Jodis","free":true,"listed":false,"github":"https://github.com/solar-systems/Jodis","clone":"git clone https://github.com/solar-systems/Jodis.git","description":"Jodis, Java Object Dictionary Server, Just Like Redis","language":"Java","stars":17,"topics":["redis","kv-store","database","nosql","memory-database"],"license":"MIT","category":"databases-storage","readme_excerpt":"Jodis - Java Object Dictionary Server Jodis 是一个高性能的基于内存的 NoSQL 键值数据库，采用 Java 开发，支持独立部署和嵌入式使用。兼容 Redis RESP2 协议，提供丰富的数据结构和持久化能力。 📖 目录 - 系统架构 - 核心功能 - 使用方式 - 底层实现 - 性能特点 - 快速开始 - 文档 --- 🏗️ 系统架构 整体架构图 架构分层说明 1. 客户端层 ：支持 Java 客户端、Redis CLI 等任何兼容 RESP 协议的客户端 2. 网络层 ：基于 Netty 的 NIO Reactor 模型，高性能异步 IO 3. 协议层 ：完整实现 RESP2 协议的编解码 4. 命令执行层 ：按数据类型划分的 Executor，职责清晰 5. 存储层 ：纯内存存储，ConcurrentHashMap + 自定义数据结构 6. 持久化层 ：WAL 日志 + JDB 快照双重保障 --- ✨ 核心功能 1. 丰富的数据结构 数据类型 说明 底层实现 --------- ------ ---------- String 字符串、数字、二进制数据 java.lang.String List 双向链表，支持两端操作 java.util.LinkedList Hash 哈希表，适合存储对象 java.util.HashMap Set 无序去重集合 java.util.HashSet SortedSet 有序集合，按分数排序 TreeMap + SkipList 2. 完整的命令支持 Server 命令 - PING - 连接测试 - FLUSHDB - 清空数据库 - DBSIZE - 获取键数量 Key 命令 - DEL , EXISTS , TYPE - 基本操作 - EXPIRE , EXPIREAT , TTL - 过期时间 - KEYS , RANDOMKEY - 键查询 - RENAME , RENAMENX - 重命名 String 命令 - GET , SET , GETSET - 基本操作 - MGET , MSET - 批量操作 - INCR , DECR , INCRBY , DECRBY - 自增自减 - STRLEN , APPEND , GETRANGE , SETRANGE - 字符串操作 - SETEX , SETNX - 条件设置 List 命令 - LPUSH , RPUSH - 插入元素 - LPOP , RPOP - 弹出元素 - LRANGE , LINDEX , LSET - 查询操作 - LINSERT - 插入操作 Hash 命令 - HSET , HGET , HMSET , HMGET - 基本操作 - HGETALL , HKEYS , HVALS - 全量查询 - HDEL , HEXISTS - 删除检查 - HINCRBY , HINCRBYFLOAT - 增量操作 - HLEN , HSCAN - 统计迭代 SortedSet 命令 - ZADD , ZREM - 添加删除 - ZRANGE , ZCARD , ZCOUNT - 范围统计 - ZSCORE , ZRANK - 分数排名 3. 数据持久化 WAL (Write-Ahead Log) - 机制 ：所有写操作先记录日志，再更新内存 - 优势 ：故障恢复，数据不丢失 - 配置 ：自动重写，避免文件过大 JDB (Jodis DataBase Dump) - 机制 ：定期","default_branch":null,"files":null,"tree":[],"storefront":"/r/solar-systems","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/solar-systems/Jodis/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}