spring boot 集成 redis,自定义序列化
2019-08-22 09:48
441 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/taobong/article/details/100008231
定义接口
[code]package com.mycode.cache; import java.util.Map; /** * 缓存接口 * */ public interface Cache<T> { /** * Get an item from the cache, nontransactionally * @param key * @return the cached object or <tt>null</tt> */ T get(Object key); /** * Add an item to the cache, nontransactionally, with * failfast semantics * @param key * @param value */ void put(Object key, T value); /** * 往缓存中写入内容 * @param key * @param value * @param exp 超时时间,单位为秒 */ void put(Object key, T value, int exp); /** * 删除 * @param key */ void remove(Object key); /** * 删除 * @param key */ void vagueDel(Object key); /** * Clear the cache */ void clear(); /** * 往缓存中写入内容 * @param key 缓存key * @param hashKey 缓存中hashKey * @param hashValue hash值 */ void putHash(Object key, Object hashKey, Object hashValue); /** * 玩缓存中写入内容 * @param key * @param map */ void putAllHash(Object key, Map map); /** * 读取缓存值 * @param key * @param hashKey * @return */ T getHash(Object key, Object hashKey); /** * 读取缓存值 * @param key * @return */ Map<Object,Object> getHash(Object key); /** * 判断缓存中key是否存在 * @param key * @return */ Boolean hasKey(String key); }
添加实现
[code]@Component public class RedisCacheImpl implements Cache { private RedisTemplate redisTemplate; @Autowired(required = false) public void setRedisTemplate(RedisTemplate redisTemplate) { RedisSerializer stringSerializer = new StringRedisSerializer(); redisTemplate.setKeySerializer(stringSerializer); redisTemplate.setValueSerializer(stringSerializer); redisTemplate.setHashKeySerializer(stringSerializer); redisTemplate.setHashValueSerializer(stringSerializer); this.redisTemplate = redisTemplate; } public RedisCacheImpl() { } @Override public Object get(Object key) { return redisTemplate.opsForValue().get(key); } @Override public void put(Object key, Object value) { redisTemplate.opsForValue().set(key, value); } @Override public void put(Object key, Object value, int exp) { redisTemplate.opsForValue().set(key, value, exp, TimeUnit.SECONDS); } @Override public void remove(Object key) { redisTemplate.delete(key); } /** * 删除 * * @param key */ @Override public void vagueDel(Object key) { Set<String> keys = redisTemplate.keys(key + "*"); redisTemplate.delete(keys); } @Override public void clear() { Set keys = redisTemplate.keys("*"); redisTemplate.delete(keys); } @Override public void putHash(Object key, Object hashKey, Object hashValue) { redisTemplate.opsForHash().put(key, hashKey, hashValue); } @Override public void putAllHash(Object key, Map map) { redisTemplate.opsForHash().putAll(key, map); } @Override public Object getHash(Object key, Object hashKey) { return redisTemplate.opsForHash().get(key, hashKey); } @Override public Map<Object, Object> getHash(Object key) { return this.redisTemplate.opsForHash().entries(key); } @Override public Boolean hasKey(String key) { return this.redisTemplate.hasKey(key); } }
相关文章推荐
- 【springBoot】springBoot集成redis的key,value序列化的相关问题
- 【springBoot】springBoot集成redis的key,value序列化的相关问题
- springboot集成redis集群(带密码并序列化)
- 【springBoot】springBoot集成redis的key,value序列化的相关问题
- SpringBoot 入门教程:集成mybatis,redis
- spring boot 自学笔记(三) Redis集成—RedisTemplate
- 实现基于redis的分布式锁并集成spring-boot-starter
- Spring-boot更改redisTemplate序列化方式
- SpringBoot集成Redis
- SpringBoot @JsonDeserialize自定义Json序列化
- Springboot 集成 Redis (一)
- Redis简介-安装-Spring-SpringBoot集成教程
- SpringBoot中集成Redis集群模式
- SpringBoot2.0集成Redis的sub/pub(订阅/发布)功能实现获取Redis实时数据
- Spring Boot集成Redis实现缓存
- SpringBoot自定义redis配置
- SpringBoot 入门教程:集成mybatis,redis
- SpringBoot2.0集成Redis的日常使用
- spring boot 2.0集成并使用redis
- springboot2.0学习笔记 自定义JSON序列化程序和反序列化器