java - Redis 是否有可嵌入的 Java 替代方案?

标签 java data-structures redis set embed

According to this thread ,如果我想从 Java 中使用 Redis,Jedis 是最好的选择。

但是,我想知道是否有任何库/包提供与 Redis 中已经存在的类似的高效集合操作,但可以直接嵌入到 Java 应用程序中,而无需设置单独的服务器。 (即,使用 Jetty 作为 Web 服务器)。

更准确地说,我希望能够有效地执行以下操作:

  1. 有一大组 M 个用户(M 个事先不知道)。
  2. 有一大组 N 项。
  3. 我们希望用户检查项目,一次一个用户/项目,这会产生一个存储结果(在普通数据库中)。
  4. 每次用户到达时,我们都希望为该用户分配该用户以前从未见过的现有结果数量最少的项目。当我们只关心让所有项目查看大致相同的次数时,这会为所有到达的用户生成项目的近似循环分配。

上述以并行方式发生。当 M 和 N 很大时,Redis 比 SQL 查询更有效地完成上述操作。有没有办法使用比启动 Redis 服务器更轻量的可嵌入 Java 库来做到这一点?

我认识到使用 Java 的并发库编写一堆代码是可能的,这些代码大致近似于这一点(在某种程度上,我已经做到了),但这并不是我在这里寻找的。

最佳答案

看看project voldemort .它是由Linked-In创建的分布式键值存储,它支持嵌入的能力。

快速入门指南中有一个运行嵌入式服务器与独立运行服务器的小示例。

VoldemortConfig config = VoldemortConfig.loadFromEnvironmentVariable();
VoldemortServer server = new VoldemortServer(config);
server.start();

我对 Redis 了解不多,因此无法将它们的功能与功能进行比较。在我们使用 Voldemort 的项目中,我们使用了它的只读后备存储,效果很好。它使我们能够在我们的处理数据中心“预编译”一个双日数据库,并将其“运送”到边缘数据中心。这样,每个边缘数据中心都有其数据集的本地副本。

编辑:重读您的问题后,我想添加 Gauva's Table -- 这个 Table DataStructure 也可能是您正在寻找的东西,并且与您使用许多 no-sql 数据库获得的类似。

关于java - Redis 是否有可嵌入的 Java 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14805852/

相关文章:

java - 如何使用 FragmentStatePagerSupport 而不必使用其中的列表?

Java:JSONObject继承

go - 在结构的字段上实现 Redigo Scanner 接口(interface)

websocket - 在 ELB 后面的多个实例中使用 Socket.IO 和 Redis

asp.net - 简单.NET分布式缓存解决方案的建议

java - 变量可能尚未在二维数组中初始化

java - 是否可以从接口(interface)调用被接口(interface) "default"覆盖的继承父类(super class)的方法?

php - 对齐 xml 文档

c++ - 获取后继二进制搜索树 C++ 数据结构

区间树的C实现?