4

Redis に移植しているキー値の永続化 API で、キーの存続時間を更新する関数を実装しようとしています。元のコードでは、ttl をタイムスタンプと分数として保存します。ttl は、新しいタイムスタンプを書き込むことによって更新されます (キーはタイムスタンプ + デルタの後に期限切れになります)。

Redis がコマンドを提供していることに気付きましたTTLが、それは残り時間しか提供していません。

私が疑問に思っているのは、Redis から元の TTL を取得する方法があるかどうか (EXPIREなどで設定)、または保存している値に TTL メタ フィールドを追加する必要があるかどうかです (元のコードのように)。

編集:Redis Server v2.4.10を使用しています

4

1 に答える 1

4

内部的に、Redis ストアは TTL を UNIX タイムスタンプに変換します。db.c の関数 expireGenericCommand を参照してください。そのため、Redis は指定した TTL を返すことができません。これは、単にその形式で保存されていないためです。

アプリケーションにとって重要な場合は、TTL メタ フィールドを追加する必要があります。

于 2012-09-18T04:03:30.070 に答える