小编Kun*_*wla的帖子

在Redis中存储大型复杂Java类对象的最佳方法?

在 Redis 中存储嵌套和复杂的 java 对象的最佳方法是什么。我们的做法如下。

我们正在使用Redisson Java 客户端库进行 Redis 交互。请看下面的代码:

   try{
        Config conf = new Config();
        conf.useSingleServer().setTimeout(3600000);
        conf.useSingleServer().setRetryInterval(3600000);
        conf.useSingleServer().setAddress("redis://127.0.0.1:6379");
        RedissonClient redisson = Redisson.create(conf);
        RMap<String,Object> map = redisson.getMap("myCache");
        MyClass myObject; // This is the big complex object.
        map.put("key", myObject);
        redisson.shutdown();
    }catch (Exception ex) {
        ex.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

同样,我们使用 get 从 redis 填充我们的 myObject,而不是 put。

由于 redis 中存储了大数据,我们增加了超时时间,我们收到以下异常:

命令的命令执行超时:(EVAL) with params...

请同时回答以下问题:

  1. 这是将巨大的复杂 java 对象放入 Redis 的最佳方法吗?(数据可以在1GB左右)
  2. 我们团队刚接触Redis,看过Redis给出的良好性能,我们应该使用它来存储复杂的数据还是只在小的单个String作为值的情况下才好?(如果是,对于我们的用例有什么建议)

谢谢。

java redis redisson

3
推荐指数
1
解决办法
6210
查看次数

标签 统计

java ×1

redis ×1

redisson ×1