CleanCacheController.php 2.0 KB

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