问答详情
源自:5-3 Shiro缓存管理

RedisCache中remove方法什么时候被调用

public V remove(K k) throws CacheException {

    byte[] key = getKey(k);
    byte[] value = jedisUtil.get(key);
    jedisUtil.delete(key);

    if (value != null) {
        return (V) SerializationUtils.deserialize(value);
    }
    return null;
}

这个remove是在我们调用

subject.logout();

时自动调用吗?显示我想实现用户退出后权限数据清空,再次登陆重新加载

提问者:慕UI8298708 2019-01-18 10:39

个回答

  • 金色年华ch
    2019-12-08 15:50:39

    应该不是subuject.logout() 清空缓存信息,从源码看logout只是删除session信息

    我从Shiro的CacheManager里面看了下,里面只有getChaceh方法,所以清空缓存应该是自己根据业务来判断是否需要清空缓存

    package org.apache.shiro.cache;
    
    public interface CacheManager {
        <K, V> Cache<K, V> getCache(String var1) throws CacheException;
    }