7

phpredisを使用して、次のようにページネーションにいくつかのデータを保存しました。

   review/itemA/1
   review/itemA/2 

12ページ番号です。ワイルドカードを使用して複数のキーを取得できるというドキュメントを読みました。

$allKeys = $redis->keys('*');   // all keys will match this.
$keyWithUserPrefix = $redis->keys('user*');

しかし、誰かが新しいレビューを投稿したときに、ワイルドカードを使用してすべての古いキーを削除することはできますか? 次のようなことはできますか:

$redis->delete('review/itemA/*'); // or  $redis->delete('review/itemA*')

しかし、うまくいきませんでした。

4

7 に答える 7

4

いいえ - Redis のDELlete はワイルドカードを受け入れません。キーに明示的に名前を付ける必要があります。可能な方向については、こちらを参照してください: https://stackoverflow.com/a/23399125/3160475

于 2015-08-30T11:26:39.197 に答える
1
$bash = 'redis-cli --scan --pattern "' . $path . '*" | xargs -L 1000 redis-cli DEL';

$res = @shell_exec($bash);
于 2016-12-16T09:02:29.443 に答える