Redis 缓存和数据库之间的数据校验该怎么做?
怪我咯
怪我咯 2017-04-22 08:56:29
0
3
761

数据库是 MySQL,Redis 主要用来读缓存,现需要检测数据和缓存之间的一致性,确保从缓存读取的数据是最新的。该怎么确保这一点呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信(3)
刘奇

1. クエリ時など、モデルをインスタンス化するときに、テーブル内の総レコード数、最終変更時刻、その他の情報をモデルのメソッドに保存できます
2. データをクエリする際、クエリ条件とテーブル情報を組み合わせてキャッシュキーを計算し、キャッシュに書き込みます
3. キャッシュを取得する際、クエリ条件とテーブル情報を組み合わせてキャッシュキーを計算し、キャッシュにクエリを実行します。テーブルデータが変更されてキャッシュがヒットしない場合は、最新の結果を取得して新しいキーとして保存します

実際の開発では、MVC フレームワークが使用され、モデルの CUD 操作中に、データの一貫性を確保するために、モデルに関連付けられたすべてのキャッシュ キーが自動的に削除されます。
これには、フレームワークの使用に比較的高い基準が必要であり、モデル キャッシュ仕様に従ってキャッシュを登録する必要があります。

現時点での典型的なアプリケーションは、CRUD 後にリストのキャッシュされたデータを更新する方法です。

いいねを押す +0
刘奇

キャッシュを確認し、そうでない場合は、データベース内のデータをキャッシュにダンプします。
データの更新があり、データの整合性がそれほど高くない場合は、キャッシュ内のデータに ttl を与えるだけで、データの整合性が非常に高い場合は、データの更新時にキャッシュをクリアします。

いいねを押す +0
伊谢尔伦

バージョン情報を表すフィールドを各キーに追加できます。更新されたデータのバージョン番号を更新します。Redis をクエリするときにキーとバージョン番号を使用します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート