| | |
| | | package org.dromara.common.redis.manager; |
| | | |
| | | import cn.hutool.core.lang.Console; |
| | | import org.dromara.common.core.utils.SpringUtils; |
| | | import org.springframework.cache.Cache; |
| | | |
| | |
| | | private static final com.github.benmanes.caffeine.cache.Cache<Object, Object> |
| | | CAFFEINE = SpringUtils.getBean("caffeine"); |
| | | |
| | | private final String name; |
| | | private final Cache cache; |
| | | |
| | | public CaffeineCacheDecorator(Cache cache) { |
| | | public CaffeineCacheDecorator(String name, Cache cache) { |
| | | this.name = name; |
| | | this.cache = cache; |
| | | } |
| | | |
| | | @Override |
| | | public String getName() { |
| | | return cache.getName(); |
| | | return name; |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | public String getUniqueKey(Object key) { |
| | | return cache.getName() + ":" + key; |
| | | return name + ":" + key; |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public void put(Object key, Object value) { |
| | | CAFFEINE.invalidate(getUniqueKey(key)); |
| | | cache.put(key, value); |
| | | } |
| | | |
| | | public ValueWrapper putIfAbsent(Object key, Object value) { |
| | | CAFFEINE.invalidate(getUniqueKey(key)); |
| | | return cache.putIfAbsent(key, value); |
| | | } |
| | | |