是否可以使用一种方法使您能够使用正则表达式删除存储的 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 的最简单方法,但我认为不支持正则表达式?