java - 将 Redis ByteString 转换为 BasicDBObject

标签 java mongodb redis

我需要将序列化的 Java 对象(从 Redis 获取)转换为扩展 com.mongodb.BasicDBObject (mongo-java-driver) 的 Java 模型。

class Member extends BasicDBObject {
    public Member(DBObject doc) {
        super(doc.toMap());
    }
    public Member(BasicDBObject doc) {
        super(doc);
    }
    ...
}

我从 Redis 得到的是 ByteString 形式。

总而言之,我需要转换 ByteString -> BasicDBObject

最佳答案

您应该使用中间模型来持久化您的模型。 MongoDB 的 BasicDBObject 基于 LinkedHashMap,但很有可能您最终得到的内部数据结构不是 Java 可序列化的。

DBObjectBSONObject 都没有扩展 Serializable。我建议您将 JSON 存储在 Redis 中。一个捷径可能是在 Redis 中存储 BSON 而不是 JSON(参见 BasicBSONEncoder#encodeBasicBSONDecoder#readObject)。

关于java - 将 Redis ByteString 转换为 BasicDBObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32600992/

相关文章:

java - 编写可以从不同 JVM 停止的长生命周期 Java 类

java - 使用 ArrayList 绘制图像(JPanel、JFrame)

mongodb - 具有AWS云形成和自动扩展功能的Mongodb集群

node.js - 在express和mongoose中隐藏早于今天的事件日期

c# - .NET Core StackExchange.Redis ConnectionMultiplexer 设置多个 redis 服务器

data-structures - 在 Redis 中将集合存储为散列值

java - eclipse更新时出错

node.js - 如何在另一个文件夹中使用我的主应用程序文件夹中的 Mongoose 模型?

python-2.7 - 我需要将一个服务器 app.py 中的 json 数据发送到另一个服务器 app.py 服务?

java - 将 vector 元素与其他元素相乘