| | |
| | | |
| | | /** |
| | | * Sa-Token持久层接口(使用框架自带RedisUtils实现 协议统一) |
| | | * <p> |
| | | * 采用 caffeine + redis 多级缓存 优化并发查询效率 |
| | | * |
| | | * @author Lion Li |
| | | */ |
| | |
| | | |
| | | private static final Cache<String, Object> CAFFEINE = Caffeine.newBuilder() |
| | | // 设置最后一次写入或访问后经过固定时间过期 |
| | | .expireAfterWrite(10, TimeUnit.SECONDS) |
| | | .expireAfterWrite(5, TimeUnit.SECONDS) |
| | | // 初始的缓存空间大小 |
| | | .initialCapacity(100) |
| | | // 缓存的最大条数 |
| | |
| | | @Override |
| | | public String get(String key) { |
| | | Object o = CAFFEINE.get(key, k -> RedisUtils.getCacheObject(key)); |
| | | Console.log("caffeine -> key:" + key + ",value:" + o); |
| | | return (String) o; |
| | | } |
| | | |
| | |
| | | @Override |
| | | public Object getObject(String key) { |
| | | Object o = CAFFEINE.get(key, k -> RedisUtils.getCacheObject(key)); |
| | | Console.log("caffeine -> key:" + key + ",value:" + o); |
| | | return o; |
| | | } |
| | | |