Awselasticache-add-ttl

提供:Dev Guides
移動先:案内検索

AWS ElastiCache-TTLを追加

TTLはTime to Liveとも呼ばれます。 遅延ロード戦略とライトスルー戦略の両方を活用するために使用されます。 これらの2つの戦略については、前の章で説明しました。 ライトスルーは、データが常に最新であることを保証しますが、空のノードで失敗し、キャッシュに余分なデータが入力される可能性があります。 各書き込みに有効期間(TTL)値を追加することで、各戦略の利点を得ることができ、余分なデータでキャッシュが乱雑になることを大幅に回避できます。

TTLの仕組み

存続時間(TTL)は、キーの有効期限が切れるまでの秒数を指定する整数値です。 アプリケーションが期限切れのキーを読み取ろうとすると、キーが見つからないかのように扱われます。つまり、データベースがキーを照会され、キャッシュが更新されます。 これは、値が古くないことを保証するものではありませんが、データが古くなりすぎないようにし、キャッシュ内の値をデータベースから時々更新する必要があります。

TTLの例

以下のコードは、関数を使用してTTLを実装する方法の例を示しています。 Memcachedが使用するsetコマンドの助けを借ります。

ライトスルー戦略のコード

save_customer(customer_id, values)

    customer_record = db.query(""UPDATE Customers WHERE id = {0}"", customer_id, values)
    cache.set(customer_id, customer_record, 300)

    return success

遅延ロード戦略のコード

get_customer(customer_id)

    customer_record = cache.get(customer_id)

    if (customer_record != null)
        if (customer_record.TTL < 300)
            return customer_record       //return the record and exit function

   //do this only if the record did not exist in the cache OR
   //   the TTL was >= 300, i.e., the record in the cache had expired.
    customer_record = db.query(""SELECT * FROM Customers WHERE id = {0}"", customer_id)
    cache.set(customer_id, customer_record, 300) //update the cache
    return customer_record