84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
数据库是 MySQL,Redis 主要用来读缓存,现需要检测数据和缓存之间的一致性,确保从缓存读取的数据是最新的。该怎么确保这一点呢?
走同样的路,发现不同的人生
1. クエリ時など、モデルをインスタンス化するときに、テーブル内の総レコード数、最終変更時刻、その他の情報をモデルのメソッドに保存できます 2. データをクエリする際、クエリ条件とテーブル情報を組み合わせてキャッシュキーを計算し、キャッシュに書き込みます 3. キャッシュを取得する際、クエリ条件とテーブル情報を組み合わせてキャッシュキーを計算し、キャッシュにクエリを実行します。テーブルデータが変更されてキャッシュがヒットしない場合は、最新の結果を取得して新しいキーとして保存します
実際の開発では、MVC フレームワークが使用され、モデルの CUD 操作中に、データの一貫性を確保するために、モデルに関連付けられたすべてのキャッシュ キーが自動的に削除されます。 これには、フレームワークの使用に比較的高い基準が必要であり、モデル キャッシュ仕様に従ってキャッシュを登録する必要があります。
現時点での典型的なアプリケーションは、CRUD 後にリストのキャッシュされたデータを更新する方法です。
キャッシュを確認し、そうでない場合は、データベース内のデータをキャッシュにダンプします。 データの更新があり、データの整合性がそれほど高くない場合は、キャッシュ内のデータに ttl を与えるだけで、データの整合性が非常に高い場合は、データの更新時にキャッシュをクリアします。
バージョン情報を表すフィールドを各キーに追加できます。更新されたデータのバージョン番号を更新します。Redis をクエリするときにキーとバージョン番号を使用します。
1. クエリ時など、モデルをインスタンス化するときに、テーブル内の総レコード数、最終変更時刻、その他の情報をモデルのメソッドに保存できます
。2. データをクエリする際、クエリ条件とテーブル情報を組み合わせてキャッシュキーを計算し、キャッシュに書き込みます
3. キャッシュを取得する際、クエリ条件とテーブル情報を組み合わせてキャッシュキーを計算し、キャッシュにクエリを実行します。テーブルデータが変更されてキャッシュがヒットしない場合は、最新の結果を取得して新しいキーとして保存します
実際の開発では、MVC フレームワークが使用され、モデルの CUD 操作中に、データの一貫性を確保するために、モデルに関連付けられたすべてのキャッシュ キーが自動的に削除されます。
これには、フレームワークの使用に比較的高い基準が必要であり、モデル キャッシュ仕様に従ってキャッシュを登録する必要があります。
現時点での典型的なアプリケーションは、CRUD 後にリストのキャッシュされたデータを更新する方法です。
キャッシュを確認し、そうでない場合は、データベース内のデータをキャッシュにダンプします。
データの更新があり、データの整合性がそれほど高くない場合は、キャッシュ内のデータに ttl を与えるだけで、データの整合性が非常に高い場合は、データの更新時にキャッシュをクリアします。
バージョン情報を表すフィールドを各キーに追加できます。更新されたデータのバージョン番号を更新します。Redis をクエリするときにキーとバージョン番号を使用します。