2016-08-18 26 views
1

私は何百万というキーバリューペアを取り、それらをRedisに挿入する必要があるSpring Bootアプリケーションを持っています。Redis MSET with TTL with RedisTemplate

現在、私は一度に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

Pipeliningはあなたの問題を解決する必要があります。パイプラインを作成し、実行するすべてのコマンドを入力してから、それらを一括してレディに送信します。 EXでSETを使用すると、一度に10,000以上を送信できるはずです。

+3

FWIW、[Spring Data Redis Pipelining](http://docs.spring.io/spring-data/redis/docs/current/reference/html/#pipeline)フィーチャードキュメントへのリンクです – mp911de