thinkphpのmemcacheの設定方法は、いずれもクエリ時にキー値が存在するかどうかを判断し、存在しない場合はデータベースに接続する方法が紹介されています。データを取得します。
そこで問題は、thinkphp の memcache をデータ化する方法です。同期に関しては、データが更新、削除、または変更されたときに、memcache キャッシュも同時に更新されるのはどうでしょうか。システムの追加、削除、変更機能で対応する memcache キーを削除したいのですが、このキーに対応する方法がわかりません。 。アイデアを探しています
トリガーの使用は非常に面倒で少し面倒に感じます。
データベースを更新する場合は、キーに対応するmemcacheを削除してください。
データを読み込む際、memcache にデータがない場合は、まずデータベースから読み取って memcache に書き込みます
キーは自分で定義します。
特定のクエリをキーとして使用したい場合
$sql = "select * from table";
$key = md5($sql); 以上です。
この原理は理解していますが、キー名として md5 (sql) を使用してこの関数を記述する方法がわかりません。その後、テーブルの変更、削除、追加の操作が発生したときに、それに応じて対応するキーを見つけることができますか。テーブル名をキー名に変更して、それに応じて削除しますか?そのような機能があるはずですが、ネット上で見つかりません。アドバイスをお願いします。 。
データベースを更新する場合は、キーに対応する memcache を削除してください。 ? ?
対応するキーをプログラムを通じて見つけて、それに応じて削除できるかどうかを聞きたいのですが? ?手動で行う場合、手間がかかりすぎて非現実的です。
テーブルが削除または変更されたときに、memcache で対応する操作を実行する方法を誰も説明しないのはなぜですか?
それは非現実的であるため、テーブルの削除や変更は発生しないものとします。つまり、memcache は実際のアプリケーションではデータ キャッシュとして一般的に使用されません。
たとえば、プログラムとユーザーの間でデータを転送するには、スーパーグローバルキャリアが必要です
メモリがハードディスクよりもはるかに小さいため、データを保存することはできません。レコードごとの memcache。可能であれば、データベースは必要ありません
そのため、memcache はよく使用されるクエリの結果のみを保存し、識別用のクエリ文字列からキーを生成します
これは、memcache がクエリ単位でデータを保存することを意味します
削除または変更が発生すると、この削除または変更がクエリに影響を与えるかどうかをクエリから単純に判断することは基本的に不可能です (クエリは多数あり、実際に 1 つずつクエリするのは非現実的です)