如何从数据库加载数据到redis缓存?

时间:2017-11-10 10:11:42

标签: spring caching spring-boot redis

我们计划在我们的应用程序中使用Redis缓存,我们的要求首先是我们需要在实际应用程序启动之前将一些6个月的数据加载到Redis缓存中,我想如果我们在循环中一次执行一个命令就像将键值插入Redis,需要花费太多时间,我们可以从数据库中检索数据并将所有数据一次性插入Redis中吗?

任何人都可以建议吗?

1 个答案:

答案 0 :(得分:0)

Redis为pipelining提供支持,其中包括向服务器发送多个命令而无需等待回复,然后在一个步骤中读取回复。当您需要连续发送多个命令时,流水线操作可以提高性能,例如向同一个List添加许多元素。

Spring Data Redis提供了几种RedisTemplate方法,用于在管道中执行命令。

一个例子:

//pop a specified number of items from a queue
List<Object> results = stringRedisTemplate.executePipelined(
  new RedisCallback<Object>() {
    public Object doInRedis(RedisConnection connection) throws DataAccessException {
      StringRedisConnection stringRedisConn = (StringRedisConnection)connection;
      for(int i=0; i< batchSize; i++) {
        stringRedisConn.rPop("myqueue");
      }
    return null;
  }
});

您可以按照link

进行操作

或者你也可以使用Redis Mass insertion设施。