検索

ホームページ  >  に質問  >  本文

Redis 缓存和数据库之间的数据校验该怎么做?

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

怪我咯怪我咯2798日前745

全員に返信(3)返信します

  • 怪我咯

    怪我咯2017-04-22 08:58:29

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

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

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

    返事
    0
  • 怪我咯

    怪我咯2017-04-22 08:58:29

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

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-22 08:58:29

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

    返事
    0
  • キャンセル返事