设为首页 加入收藏

TOP

java手写多级缓存(二)
2019-09-03 01:47:50 】 浏览:27
Tags:java 手写 多级
ge
com.walmart.cirular.interfaces.application; import java.util.concurrent.TimeUnit; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import com.ws.commons.cache.ICache; /** * redis 缓存实现类 * * @author 尘无尘 * */ @Component public class RedisICacheImpl implements ICache { @Autowired(required = false) private RedisTemplate<String, Object> redisTemplate; @Override public void put(String key, Object value) { redisTemplate.opsForValue().set(key, value); } @Override public void put(String key, Object value, int timeOutSecond) { redisTemplate.opsForValue().set(key, value, (long) timeOutSecond, TimeUnit.SECONDS); } @SuppressWarnings("unchecked") @Override public <T> T get(String key) { T t = (T) redisTemplate.opsForValue().get(key); redisTemplate.delete(key); return t; } @Override public void remove(String key) { redisTemplate.delete(key); } @SuppressWarnings("unchecked") @Override public <T> T removeAndGet(String key) { Object obj = get(key); redisTemplate.delete(key); return (T) obj; } @Override public void rightPush(String key, Object value, int timeOutSecond) { redisTemplate.opsForList().rightPush(key, value); redisTemplate.expire(key, timeOutSecond, TimeUnit.SECONDS); } @SuppressWarnings("unchecked") @Override public <T> T rightPop(String key) { return (T) redisTemplate.opsForList().rightPop(key); } @SuppressWarnings("unchecked") @Override public <T> T leftPop(String key) { return (T) redisTemplate.opsForList().leftPop(key); } @Override public void leftPush(String key, Object value) { redisTemplate.opsForList().leftPush(key, value); } @Override public void rightPush(String key, Object value) { redisTemplate.opsForList().rightPush(key, value); } @Override public void expire(String key, int timeOutSecond) { redisTemplate.expire(key, timeOutSecond, TimeUnit.SECONDS); } @Override public boolean hasKey(String key) { return redisTemplate.hasKey(key); } @Override public boolean putIfAbsent(String key, Object value) { return redisTemplate.opsForValue().setIfAbsent(key, value); } @Override public boolean putIfAbsent(String key, Object value, int timeOutSecond) { boolean flag = putIfAbsent(key, value); if (flag) { expire(key, timeOutSecond); } return flag; } }

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇基于代理类实现Spring AOP 下一篇Redis的HelloWorld

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目