保存された apc エントリを正規表現で削除できる方法はありますか?
たとえば、新しいデータがデータベースに入力されたときにキャッシュから削除して、次にクエリを実行したときに新しいデータが表示されるようにするユーザークエリがあります。
キャッシュされたフレンドリストクエリがあるとしますが、新しいフレンドが追加されると、そのユーザーのキャッシュされたフレンドクエリはすべて削除されます...
ユーザーのフレンドリストに次のようなキーがある場合:
$sql = "SELECT * FROM friends WHERE userId = :userId";
$sqlKey = str_replace(":userId", $userId, $sql);
$key = $userId."-friend".md5('query'.$sqlKey);
$data = friendsArray;
apc_add($key, $data, 60 * 10);
次に、新しい友達追加クエリを実行した後、現在の userId で始まるすべてのエントリを削除して、次の閲覧時に友達リストに新しいユーザーが表示されるようにすることをお勧めします。
apc_delete("~$userId-friend([a-f0-9]+)~");
フレンド リストの sql とフレンドの追加 sql は別のドキュメントにあるため、これは sql を書き換えたりキーを付けたりせずに実行する最も簡単な方法のようですが、正規表現はサポートされていないと思いますか?