5

保存された 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 を書き換えたりキーを付けたりせずに実行する最も簡単な方法のようですが、正規表現はサポートされていないと思いますか?

4

1 に答える 1