2017-01-10 16 views
0

Redis Pub/Subモデル(https://redis.io/topics/pubsub)を使用していますが、同じものとしてjedisクライアントを使用しています。私はredisの有効期限を購読しました。これは、redisのキー数が少なければ完全に機能します。しかし、異なるTTLを持つ100万を超えるキーがある場合、キーの有効期限は、キーのTTLに応じて必ずしも発生するとは限りません。 Redisのドキュメント(https://redis.io/commands/expire)からRedis有効期限が切れていません

Specifically this is what Redis does 10 times per second: 
1. Test 20 random keys from the set of keys with an associated expire. 
2. Delete all the keys found expired. 
3. If more than 25% of keys were expired, start again from step 1. 

だから、キーの数が多いと、選ばれたランダムキーが高いTTLを持っているので、ステップ2と3が実行されません可能性があります。

これを解決するにはどうすればよいですか、またはこれを達成するためにredis以外のものを使用できますか?

答えて

0

あなたの問題はRedis Keyspace Notificationsページに記載されています。

なしコマンドのターゲット常にキーの場合、および 関連するTTLを持つ多くのキーがあり、時間 の間に大幅な遅延がゼロに降下を生きるためのキー時刻、およびタイム期限切れのイベントが存在することができ が生成されます。この問題を解決するには

、あなたは、毎秒10回のデフォルトhz設定値を使用して、アクティブな有効期限イベントの周波数の増加を試すことができます。

関連する問題