Ich habe eine Spring-Boot-Anwendung, die Millionen von Schlüsselwertpaaren nehmen und in Redis einfügen muss.Redis MSET mit TTL im Frühjahr RedisTemplate
Momentan verwende ich die multiSet
Methode 1.000 Schlüsselwertpaare gleichzeitig.
@Autowired
private final StringRedisTemplate template;
...
Map<String, String> keyValuePairs = new HashMap<>();
template.opsForValue().multiSet(keyValuePairs);
Allerdings müssen wir auch ein TTL für jedes Paar setzen. Es scheint keinen Weg zu geben, dies mit multiSet
zu tun. Es gibt einen Weg mit set
, aber das müsste millionenfach aufgerufen werden, also möglicherweise nicht effizient.
// For each key value pair
template.opsForValue().set(key, value, timeout, unit);
Kennt jemand eine Möglichkeit, dies zu tun oder die set
in einer performanten Weise mit?
Dank
FWIW, hier ist der Link zur Funktionsdokumentation [Spring Data Redis Pipelining] (http://docs.spring.io/spring-data/redis/docs/current/reference/html/#pipeline) – mp911de