微服务(二)--redis-client
来源:互联网 发布:大数据应用支撑平台 编辑:程序博客网 时间:2024/06/08 03:13
目录
使用redis已经是十分普遍的事情了
以上是自己编写的jar的目录
我们使用spring-data-redis-jpa 的 依赖
利用 fastJson对任意对象进行 StringJson化,同时还设置过期时间
@Componentpublic class RedisClientKValueImpl<V> implements IRedisClientKValue<V> { @Autowired private StringRedisTemplate redisTemplate; protected Class<V> vClass; public RedisClientKValueImpl() { } /** * 为指定的key设定指定的value * * @param appkey 应用模块的固定key部分(必要) * @param key 对象key(必要) * @param value 对象值(必要) * @see com.baozun.unex.common.redis.client.IRedisClientKValue#set(java.lang.String, java.lang.String, java.lang.Object) */ @Override public void set(String appkey, String key, V value) { redisTemplate.opsForValue().set(combineKey(appkey, key), this.serialize(value)); } /** * 为指定的key设定指定的value和超时时间 * * @param appkey 应用模块的固定key部分(必要) * @param key 对象key(必要) * @param value 对象值(必要) * @param timeout 超时时间(单位毫秒) * @see com.baozun.unex.common.redis.client.IRedisClientKValue#set(java.lang.String, java.lang.String, java.lang.Object, long) */ @Override public void set(String appkey, String key, V value, long timeout) { redisTemplate.opsForValue().set(combineKey(appkey, key), this.serialize(value), timeout, TimeUnit.MILLISECONDS); } /** * 删除指定的key/value * * @param appkey 应用模块的固定key部分(必要) * @param key 对象key(必要) * @see com.baozun.unex.common.redis.client.IRedisClientKValue#delete(java.lang.String, java.lang.String) */ @Override public void delete(String appkey, String key) { redisTemplate.delete(combineKey(appkey, key)); } /** * 批量为指定的key设定指定的value * * @param appkey 应用模块的固定key部分(必要) * @param map 需要设定的值(必要) * @see com.baozun.unex.common.redis.client.IRedisClientKValue#multiSet(java.lang.String, java.util.Map) */ @Override public void multiSet(String appkey, Map<String, ? extends V> map) { Map<String, String> newMap = new HashMap<String, String>(); for (String key : map.keySet()) { newMap.put(combineKey(appkey, key), this.serialize(map.get(key))); } redisTemplate.opsForValue().multiSet(newMap); } /** * 获取指定的key的value * * @param appkey 应用模块的固定key部分(必要) * @param key 对象key(必要) * @param value * @see com.baozun.unex.common.redis.client.IRedisClientKValue#get(java.lang.String, java.lang.String) */ @Override public V get(String appkey, String key, Class<? extends V> requireClass) { return this.deserialize(redisTemplate.opsForValue().get(combineKey(appkey, key)), requireClass); } /** * 为指定的Key的数值递增相应的delta, 原值必须为Long型 * * @param appkey 应用模块的固定key部分(必要) * @param key 对象key(必要) * @param delta 递增的值 * @see com.baozun.unex.common.redis.client.IRedisClientKValue#increment(java.lang.String, java.lang.String, long) */ @Override public Long increment(String appkey, String key, long delta) { return redisTemplate.opsForValue().increment(combineKey(appkey, key), delta); } /** * 设定指定的键值的过期时长 * * @param appkey 应用模块的固定key部分(必要) * @param key 对象key(必要) * @param timeout 超时时长(单位:秒) * @return 设置成功返回true, 否则false * @author zejun.dong * @Date 2017年11月15日上午10:44:16 */ @Override public Boolean expire(String appkey, String key, final long timeout) { return redisTemplate.expire(combineKey(appkey, key), timeout, TimeUnit.SECONDS); } /** * 设定指定的键值的过期时长 * * @param appkey 应用模块的固定key部分(必要) * @param key 对象key(必要) * @param date 超时时间 * @return 设置成功返回true, 否则false * @author zejun.dong * @Date 2017年11月15日上午10:44:16 */ @Override public Boolean expireAt(String appkey, String key, final Date date) { return redisTemplate.expireAt(combineKey(appkey, key), date); } /* * 获取当前的组合key */ private String combineKey(String appkey, String key) { return String.format("%s-%s", appkey, key); } private String serialize(V value) { return JSON.toJSONString(value); } private V deserialize(String value, Class<? extends V> requireClass) { return JSON.parseObject(value, requireClass); } }
阅读全文
0 0
- 微服务(二)--redis-client
- 微服务(二)
- MicroService4Net快速搭建微服务(二)
- 我也来谈微服务(二)
- 初学springcloud微服务框架(二)
- 微服务架构浅谈(二)
- 微服务指南走北(二):微服务架构的进程间通信(IPC)
- 【转】解析微服务架构(二)微服务架构综述
- 微服务之使用 API 网关构建微服务(二)
- 从0开始的微服务架构:(二)如何快速体验微服务架构?
- 360搜索在微服务架构下的技术平台实践(二) -- 微服务架构
- 都在说微服务,那么微服务的反模式和陷井是什么(二)
- 都在说微服务,那么微服务的反模式和陷阱是什么(二)
- 微服务架构之RPC-client序列化细节
- 微服务架构下的数据一致性保证(二)
- Spring Cloud构建微服务架构(二)服务消费者
- Spring Cloud构建微服务架构(二)服务消费者
- 微服务架构下的数据一致性保证(二)
- Git学习笔记
- 云计算零基础理论到实践-云计算深入学习推荐
- Java面经_多线程
- 关于CSDN怎么获得积分和C币的方法
- postgresql数据库常用操作命令及SQL语言
- 微服务(二)--redis-client
- Intellij IDEA(android studio) svn的使用记录
- No-ip的使用(解决没有固定ip问题)
- c++ map查找遍历删除
- 物体检测 DSOD论文 1708.01241的翻译 (2)
- Gradle错误(三)
- PostgreSQL
- 使用花生壳实现内网映射,搭建Windows平台下的服务器环境
- Linux下搭建vsftp配置文件详解