首页 文章

Redis MSET在Spring RedisTemplate中使用TTL

提问于
浏览
3

我有一个Spring Boot应用程序需要占用数百万个键值对并将它们插入Redis .

目前我一次使用 multiSet 方法1,000个键值对 .

@Autowired
private final StringRedisTemplate template;

...

Map<String, String> keyValuePairs = new HashMap<>();
template.opsForValue().multiSet(keyValuePairs);

但是,我们还需要为每对设置一个TTL . 似乎没有办法用 multiSet 做到这一点 . 有一种方法 set 但这必须被调用数百万次,所以可能效率不高 .

// For each key value pair
template.opsForValue().set(key, value, timeout, unit);

有没有人知道这样做的方式或以高效的方式使用 set

谢谢

1 回答

  • 1

    Pipelining应该解决你的问题;您创建一个管道,用您要执行的所有命令填充它,然后将它们批量发送到redis . 使用SET与EX,您应该能够一次发送10,000或更多 .

相关问题