首页 > 其他 > 详细

redis缓存

时间:2022-05-27 20:40:58      阅读:4      评论:0      收藏:0      [点我收藏+]

1. 通过MyBatis使用redis缓存

1. 在 *Mapper.xml 内添加 cache 标签,type的值为自定义的redisCache类的全路径

2. 定义RedisCache类,继承自Cache,如下:
public class RedisCache implements Cache {

    private RedisTemplate redisTemplate;

    private final String id;

    public RedisCache(String id){
        this.id = id;
    }

    @Override
    public String getId() {
        return id;
    }

    @Override
    public void putObject(Object o, Object o1) {
        if(o == null)   return ;
        if(redisTemplate == null)
            redisTemplate = ((RedisTemplate) ApplicationContextUtil.getBean("redisTemplate"));
        redisTemplate.opsForHash().put(id,o.toString(),o1);
    }

    @Override
    public Object getObject(Object o) {
        if(o == null)   return null;
        if(redisTemplate == null)
            redisTemplate = ((RedisTemplate) ApplicationContextUtil.getBean("redisTemplate"));
        return redisTemplate.opsForHash().get(id,o.toString());
    }

    // 为mybatis的保留方法,基本不使用
    @Override
    public Object removeObject(Object o) {
        return null;
    }

    //delete,save,update都会调用这个方法
    @Override
    public void clear() {
        if(redisTemplate == null)
            redisTemplate = ((RedisTemplate) ApplicationContextUtil.getBean("redisTemplate"));
        redisTemplate.delete(id);
    }

    @Override
    public int getSize() {
        if(redisTemplate == null)
            redisTemplate = ((RedisTemplate) ApplicationContextUtil.getBean("redisTemplate"));
        return redisTemplate.opsForHash().size(id).intValue();
    }
}

redis缓存

原文:https://www.cnblogs.com/c21w/p/15354529.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!