CleanCacheController.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace pt\controllers;
  3. use Yii;
  4. use common\components\util;
  5. use common\components\dict;
  6. class CleanCacheController extends PlatformController
  7. {
  8. public function actionIndex()
  9. {
  10. $cacheKeys = dict::$cacheKey;
  11. $i = 1;
  12. foreach ($cacheKeys as $keyName => $redisKey) {
  13. $newCacheKeys[] = ['id' => $i, 'keyName' => $keyName];
  14. $i++;
  15. }
  16. return $this->render('index', ['cacheKeys' => $newCacheKeys]);
  17. }
  18. /**
  19. * 删除模糊匹配的所有键
  20. */
  21. public function actionAllClean()
  22. {
  23. $keyName = Yii::$app->request->get('keyName');
  24. $cacheKeys = dict::$cacheKey;
  25. if (!key_exists($keyName, $cacheKeys)) {
  26. util::fail($keyName . '缓存键不存在');
  27. }
  28. $redisKey = $cacheKeys[$keyName] . '*';//模糊匹配所有的键
  29. $allKeys = Yii::$app->redis->keys($redisKey);
  30. foreach ($allKeys as $key) {
  31. Yii::$app->redis->executeCommand('DEL', [$key]);
  32. }
  33. util::success($keyName . '匹配的缓存键清除完成');
  34. }
  35. public function actionKeysList()
  36. {
  37. $keyName = Yii::$app->request->get('keyName');
  38. $cacheKeys = dict::$cacheKey;
  39. if (!key_exists($keyName, $cacheKeys)) {
  40. util::fail($keyName . '缓存键不存在');
  41. }
  42. $redisKey = $cacheKeys[$keyName] . '*';//模糊匹配所有的键
  43. $allKeys = Yii::$app->redis->keys($redisKey);
  44. return $this->render('keys-list', ['allKeys' => $allKeys]);
  45. }
  46. /**
  47. * 指定删除单个键
  48. */
  49. public function actionSingleClean()
  50. {
  51. $key = Yii::$app->request->get('key');
  52. $exist = Yii::$app->redis->executeCommand('EXISTS', [$key]);
  53. if ($exist) {
  54. Yii::$app->redis->executeCommand('DEL', [$key]);
  55. util::complete($key . '缓存键清除成功');
  56. }
  57. util::fail($key . '缓存键不存在');
  58. }
  59. }