有什么方法可以从关系数据库(如 Oracle 或 SQL Server)访问 Redis 数据?
我想到的一个用例是数据仓库的 ETL。
我试图理解这个问题:您在传统的 RDBM 中有数据,并且您想从这里提取信息并加载到 Redis 中?还是相反?
无论哪种方式,由于没有能力谈论 RDBMS,我希望创建一个程序(在我的例子中是 Java),它将从 Redis 中提取信息,并将其上传到 Oracle。有使用 Java 客户端库与 Redis 交互的选项(JDBC Redis 和 JRedis 是示例)
如果您可以详细说明您的问题,您可能会从社区获得更好的答案。
好吧,如果您在 ORA 上使用服务器端 Java 对象(如果不是套接字 io(不知道),他们至少可以进行 REST 调用),那么您可以从 Oracle 中的存储过程调用 Redis。
[编辑]
应该补充一点,如果您可以建立套接字连接,那么只需在您的 Oracle 服务器的 lib 中包含 JRedis jar,以便服务器端对象可以创建客户端。
如果这不可能——我会严重质疑允许 SProcs 和触发器打开通用 TCP 连接的数据库——那么你就只能使用 Web 服务了。
JRedis 不支持 Web 服务,但没有什么能阻止您包装 JRedis 并将所需的任何命令公开为 RESTFul 资源。因此,在这里,您将在服务器 R 上运行 Redis,这是一个在服务器 R 或 R` 上运行 JRedis 的 java Web 服务器(Jetty/Jettison 会很好)。由于 Redis 是单线程的,因此可以在与 JVM 相同的多核机器上运行它。这只是资源问题,如果它们就足够了,那么您就可以在 Redis 和 JRedis 之间的连接上使用环回,并且保证比遍历网络边界更快!但是,如果您需要的负载排除了 Redis 和 JRedis(代理)的托管,那么请使用第二台服务器。
当然,您在服务器 D 上运行数据库。所以 D <=> R` <=> R。当然,您将支付第二跳的延迟成本。