实现思路:

  简单描述一下,通过遍历获取所有Redis的key值,有两种方式,分别是StringRedisTemplate的delete方法和RedisTemplate的delete方法,这里我是调用RedisTemplate对象的delete方法进行删除。

参考代码:

package com.example.business.controller;

import com.example.business.vo.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Set;

/**
 * redis
 */
@Controller
@RequestMapping(value = "/redis")
public class RedisController {
    @Autowired
    private RedisTemplate redisTemplate;

    /**
     * 清除所有缓存
     *
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "/del-cache", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
    public JsonResult delCache() {
        boolean state = false;
        Set<String> keys = redisTemplate.keys("*");
        for (String key : keys) {
            redisTemplate.delete(key);
            state = true;
        }
        if (state) {
            return JsonResult.success("清除缓存成功!");
        } else {
            return JsonResult.error("无缓存数据可清除!");
        }
    }
}

这里需要注意的是:使用RedisTemplate缓存时,确保你设置缓存时,也是使用RedisTemplate。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐