Skip to content

Commit

Permalink
add todo list; add some algorithm practise
Browse files Browse the repository at this point in the history
  • Loading branch information
jimin.zheng committed Jul 8, 2016
1 parent 659a25e commit febdf9b
Show file tree
Hide file tree
Showing 5 changed files with 5 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/app/mvc/acl/service/SysCacheService.java
Original file line number Diff line number Diff line change
@@ -1 +1 @@
package com.app.mvc.acl.service;import com.app.mvc.acl.enums.CacheKeyConstants;import com.app.mvc.beans.JsonMapper;import com.app.mvc.redis.RedisPool;import com.google.common.base.Joiner;import lombok.NonNull;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Service;import javax.annotation.Resource;/** * Created by jimin on 16/2/4. */@Slf4j@Servicepublic class SysCacheService { // @Resource(name = "redisPool") private RedisPool redisPool; /** * 添加缓存数据 * * @param toSavedValue 要保存的数据,必须序列化 * @param prefix 缓存key前缀 */ public void saveCache(String toSavedValue, int timeoutSeconds, @NonNull CacheKeyConstants prefix) { saveCache(toSavedValue, timeoutSeconds, prefix, null); } /** * 添加缓存数据 * * @param toSavedValue 要保存的数据,必须序列化 * @param prefix 缓存key前缀 * @param keys 缓存key的每一项 */ public void saveCache(String toSavedValue, int timeoutSeconds, @NonNull CacheKeyConstants prefix, String... keys) { if (toSavedValue == null) { // 空值不被保存,返回为空时代表出现异常情况 return; } try { String cacheKey = generateKey(prefix, keys); redisPool.instance().setex(cacheKey, timeoutSeconds, toSavedValue); } catch (Throwable t) { log.error("save cache exception, prefix:{}, keys:{}", prefix.name(), JsonMapper.obj2String(keys), t); } } /** * 失效缓存数据 * * @param prefix 缓存key前缀 * @param keys 缓存key的每一项 */ public void delCache(@NonNull CacheKeyConstants prefix, String... keys) { try { String cacheKey = generateKey(prefix, keys); redisPool.instance().del(cacheKey); } catch (Throwable t) { log.error("expire cache exception, prefix:{}, keys:{}", prefix.name(), JsonMapper.obj2String(keys), t); } } /** * 从cache获取指定key的数据 * 注意:为空时代表获取出现异常 * * @param clazz 返回的类型 * @param prefix 缓存key的前缀 * @param keys 缓存key的每一项 * @return 缓存中数据 */ public String getFromCache(@NonNull Class clazz, @NonNull CacheKeyConstants prefix, String... keys) { String cacheKey = generateKey(prefix, keys); try { return redisPool.instance().get(cacheKey); } catch (Throwable t) { log.error("get from cache exception, prefix:{}, keys:{}", prefix.name(), JsonMapper.obj2String(keys), t); } return null; } /** * 生成cache key * * @param prefix 前缀 * @param keys 组成key的列表 * @return prefix-K1-K2...-Kn: */ private String generateKey(CacheKeyConstants prefix, String... keys) { String key = prefix.name(); if (keys != null && keys.length > 0) { key += "-" + Joiner.on("-").join(keys); } key += ":"; return key; }}
package com.app.mvc.acl.service;import com.app.mvc.acl.enums.CacheKeyConstants;import com.app.mvc.beans.JsonMapper;import com.app.mvc.redis.RedisPool;import com.google.common.base.Joiner;import lombok.NonNull;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Service;/** * Created by jimin on 16/2/4. */@Slf4j@Servicepublic class SysCacheService { // @Resource(name = "redisPool") private RedisPool redisPool; /** * 添加缓存数据 * * @param toSavedValue 要保存的数据,必须序列化 * @param timeoutSeconds 缓存失效时间,单位:秒 * @param prefix 缓存key前缀 */ public void saveCache(String toSavedValue, int timeoutSeconds, @NonNull CacheKeyConstants prefix) { saveCache(toSavedValue, timeoutSeconds, prefix, null); } /** * 添加缓存数据 * * @param toSavedValue 要保存的数据,必须序列化 * @param timeoutSeconds 缓存失效时间,单位:秒 * @param prefix 缓存key前缀 * @param keys 缓存key的每一项 */ public void saveCache(String toSavedValue, int timeoutSeconds, @NonNull CacheKeyConstants prefix, String... keys) { if (toSavedValue == null) { // 空值不被保存,返回为空时代表出现异常情况 return; } try { String cacheKey = generateKey(prefix, keys); redisPool.instance().setex(cacheKey, timeoutSeconds, toSavedValue); } catch (Throwable t) { log.error("save cache exception, prefix:{}, keys:{}", prefix.name(), JsonMapper.obj2String(keys), t); } } /** * 失效缓存数据 * * @param prefix 缓存key前缀 * @param keys 缓存key的每一项 */ public void delCache(@NonNull CacheKeyConstants prefix, String... keys) { try { String cacheKey = generateKey(prefix, keys); redisPool.instance().del(cacheKey); } catch (Throwable t) { log.error("expire cache exception, prefix:{}, keys:{}", prefix.name(), JsonMapper.obj2String(keys), t); } } /** * 从cache获取指定key的数据 * 注意:为空时代表获取出现异常 * * @param clazz 返回的类型 * @param prefix 缓存key的前缀 * @param keys 缓存key的每一项 * @return 缓存中数据 */ public String getFromCache(@NonNull Class clazz, @NonNull CacheKeyConstants prefix, String... keys) { String cacheKey = generateKey(prefix, keys); try { return redisPool.instance().get(cacheKey); } catch (Throwable t) { log.error("get from cache exception, prefix:{}, keys:{}", prefix.name(), JsonMapper.obj2String(keys), t); } return null; } /** * 生成cache key * * @param prefix 前缀 * @param keys 组成key的列表 * @return prefix-K1-K2...-Kn: */ private String generateKey(CacheKeyConstants prefix, String... keys) { String key = prefix.name(); if (keys != null && keys.length > 0) { key += "-" + Joiner.on("-").join(keys); } key += ":"; return key; }}
Expand Down
Loading

0 comments on commit febdf9b

Please sign in to comment.