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