把 ArcadeDB 当 Redis 用键值模型快速上手指南【免费下载链接】arcadedbArcadeDB Multi-Model Database, one DBMS that supports SQL, Cypher, Gremlin, HTTP/JSON, MongoDB and Redis. ArcadeDB is a conceptual fork of OrientDB, the first Multi-Model DBMS. ArcadeDB supports Vector Embeddings.项目地址: https://gitcode.com/gh_mirrors/ar/arcadedbArcadeDB 是一个开源的多模型数据库Multi-Model Database一套 DBMS 同时支持 SQL、Cypher、Gremlin、HTTP/JSON、MongoDB 和 Redis 协议。其中内置的 Redis 兼容层redisw 模块让你把 ArcadeDB 当 Redis 用无需改动一行业务代码直接用 redis-cli、Jedis、redis-py 等熟悉的 Redis 客户端连上 6379 端口即可完成键值读写更妙的是键值数据还能无缝升级为持久化文档并继续用 SQL 查询。本文面向新手用最少的代码带你 10 分钟完成键值模型快速上手。什么是 ArcadeDB 的 Redis 兼容层ArcadeDB 在 redisw/ 模块中实现了一个完整的 Redis 线协议RESP服务端它并不是一个代理或转发器而是把 Redis 命令直接映射到数据库引擎的操作内存键值命令SET、GET、INCR等走连接本地的高速内存桶读写极快文档命令HSET、HGET、HDEL等落盘为真正的数据库文档重启不丢事务命令MULTI、EXEC、DISCARD由数据库的事务引擎保证原子性。核心代码都集中在 RedisNetworkExecutor.java命令分发与协议解析和 RedisQueryEngine.java命令执行逻辑启动入口是 RedisProtocolPlugin.java代码量精简、边界清晰非常适合阅读学习。为什么值得把 ArcadeDB 当 Redis 用✅零迁移成本端口、协议、命令语义与原生 Redis 一致客户端无需改动✅数据可持久化内存键值之外HSET写入的数据是真正的数据库记录支持事务与崩溃恢复✅多模型打通同一份数据Redis 客户端能写、SQL 客户端能查、GraphQL 能读一套数据多种玩法✅一套认证体系复用 ArcadeDB 的用户/权限系统server-users.jsonl无需单独维护 Redis 密码。一键安装与启动方法以源码方式最快上手克隆仓库后直接构建运行git clone https://gitcode.com/gh_mirrors/ar/arcadedb cd arcadedb ./mvnw clean package -DskipTests ./server.sh启动成功后控制台会输出类似Listening for incoming connections on 0.0.0.0:6379 (Redis)的日志说明 Redis 协议已就绪。发行包里自带redisw模块如果你的构建是minimal或headless包需要改用完整包full以包含该模块详见根目录 README.md 中的打包说明。最快验证方法用 redis-cli 连接服务器起来后打开一个终端直接连redis-cli -p 6379先认证ArcadeDB 要求用户名密码两参数形式再敲几个命令试试AUTH root root PING SET greeting hello arcadedb GET greeting INCR counter INCR counter EXISTS greeting输出与原生 Redis 完全一致PING返回PONGGET greeting返回hello arcadedbINCR counter依次返回1、2。到此你已经成功把 ArcadeDB 当 Redis 用了 键值命令速查表下表汇总了当前支持的 Redis 命令分为内存桶与持久化两类类别命令说明连接PING健康检查返回PONG连接AUTH user pass认证必填两参数形式连接HELLO协议握手支持 RESP2/RESP3连接SELECT db切换当前数据库内存键值SET/GET设置 / 读取键值内存键值GETDEL读取并删除内存键值EXISTS判断键是否存在支持多键内存键值INCR/INCRBY/INCRBYFLOAT自增支持浮点内存键值DECR/DECRBY自减持久化文档HSET/HMSET写入文档JSON持久化文档HGET/HMGET按索引或 RID 读取文档持久化文档HEXISTS/HDEL文档存在性检查 / 删除事务MULTI/EXEC/DISCARD事务块 / 提交 / 放弃命令的完整判定逻辑见 RedisNetworkExecutor.java 的executeCommand方法。如何实现键值的持久化写入这是 ArcadeDB 与原生 Redis 最大的不同内存键值只在连接生命周期内有效而HSET写入的是持久化文档。语法是HSET 类型名 JSONHSET Person {id:1,name:John,age:30}这条命令会在数据库中创建一个Person文档。之后你可以用索引精确读取HGET Person[id] 1用记录 ID 读取HGET #10:5用 SQL 查询同一份数据SELECT FROM Person WHERE name John。也就是说你可以在缓存层先SET快速读写把需要落库的数据用HSET沉淀为文档——键值模型与文档模型在 ArcadeDB 里自然融合。完整示例可参考 RedisQueryLanguageTest.java。事务与批量命令的正确用法Redis 风格的MULTI/EXEC在 ArcadeDB 中由事务引擎执行保证原子性MULTI SET order:1001 paid INCR stats:paid_orders EXEC除此之外还支持按行批量执行每行一条命令以及用#或//写注释方便在 HTTP API 或脚本里批量提交。需要提醒的是写命令如HSET必须走 command 端点只读命令才允许走 query 端点这是analyze()中幂等性检查决定的详见 RedisQueryEngine.java。认证、多库与安全配置ArcadeDB 的 Redis 监听器直接复用服务器的安全体系所有连接必须先AUTH未认证的命令一律返回NOAUTH。常用配置项如下定义在 GlobalConfiguration.java配置项默认值作用arcadedb.redis.port6379Redis 监听端口arcadedb.redis.host0.0.0.0监听地址arcadedb.redis.defaultDatabase空默认数据库键值命令直接落到该库的全局变量arcadedb.redis.tlsfalse是否启用 TLS 加密连接切换到指定数据库可用SELECT db也可以在键名前加数据库名.前缀如mydb.mykey优先级为键前缀 SELECT 默认配置 连接本地桶。这些安全与协议细节在 RedisAuthenticationTest.java 中有完整测试覆盖。常见问题速答Q连不上 6379 端口检查是否使用了full发行包以及端口是否被本机 Redis 占用冲突时换端口即可。Q为什么我的SET数据重启后没了内存键值默认存在连接本地桶中如需持久化请使用SELECT选中数据库或直接用HSET写入文档。Q能直接用 Jedis / redis-py 吗可以。官方测试就是用 Jedis 驱动的见 RedisWTest.java先auth(user, pass)即可。小结把 ArcadeDB 当 Redis 用不是功能阉割的山寨 Redis而是一套数据资产的统一入口键值模型负责快文档模型负责稳SQL 负责查全部跑在同一套引擎和事务体系里。对于想减少中间件数量、统一数据栈的团队来说这是一条低成本、高收益的路径。赶紧克隆仓库动手试试吧【免费下载链接】arcadedbArcadeDB Multi-Model Database, one DBMS that supports SQL, Cypher, Gremlin, HTTP/JSON, MongoDB and Redis. ArcadeDB is a conceptual fork of OrientDB, the first Multi-Model DBMS. ArcadeDB supports Vector Embeddings.项目地址: https://gitcode.com/gh_mirrors/ar/arcadedb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考