sql >> データベース >  >> NoSQL >> Redis

redisで有効期限が切れるプレフィックス付きのキーの保存

    これを直接行うことはできません。 hset全体に有効期限を追加できますが、個々のフィールドには追加できません。これを行う場合は、r.expire('name', time)を呼び出すことができます。 、ここでtime 有効期限が切れるまでの秒数です。

    別の方法として、setを使用できます hsetの代わりに :

    for i in range(10):
        r.set('name:' + str(i), i, ex=time_to_expire_s)
    

    これにより、一部の機能が失われます。たとえば、「name:」で始まるすべてのキーを一覧表示するのは適切な方法ではありませんが、キーの有効期限を個別に設定できるためです。

    2番目のオプションとして、hsetの値に有効期限を設定できます 。これにはクライアント側のロジックが必要であり、Redisはあなたに代わって消去を行いません。しかし、あなたは次のようなことをすることができます:

    for i in range(10):
        r.hset(
            'name',
            i,
            json.dumps({ 'value': i, 'expiration': time.time() + time_to_expire_s })
        )
    

    そして、有効期限が過去の値を読み取った場合、それはキャッシュミスであると見なします。これは、メモリを解放するためにキーを期限切れにしようとしている場合は役に立ちませんが、何らかの正当性の理由でキーを期限切れにすることが目標である場合は、これでうまくいく可能性があります。




    1. 10の最高のMongoDBホスティングプラットフォーム

    2. redisサーバーを実行し続ける方法

    3. 期限切れのキーをredisはどのように使用しますか?

    4. グラフDBとドキュメントDBとトリプルストア