zoukankan      html  css  js  c++  java
  • redis工具类

    import com.alibaba.fastjson.JSON;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.stereotype.Service;
    import javax.annotation.Resource;
    import java.util.concurrent.TimeUnit;
    
    /**
     * Redis工具类
     */
    @Service
    public class RedisUtils {
        @Resource(name = "redisTemplate")
        private RedisTemplate<String, String> redisTemplate;
        /**  默认过期时长,单位:秒 */
        public final static long DEFAULT_EXPIRE = 60 * 60 * 24L;
        /**  不设置过期时长 */
        public final static long NOT_EXPIRE = -1L;
    
        public void set(String key, Object value, long expire){
            redisTemplate.opsForValue().set(key, toJson(value));
            if(expire != NOT_EXPIRE){
                redisTemplate.expire(key, expire, TimeUnit.SECONDS);
            }
        }
    
        public void set(String key, Object value){
            set(key, value, DEFAULT_EXPIRE);
        }
    
        public <T> T get(String key, Class<T> clazz, long expire) {
            String value = redisTemplate.opsForValue().get(key);
            if(expire != NOT_EXPIRE){
                redisTemplate.expire(key, expire, TimeUnit.SECONDS);
            }
            return value == null ? null : fromJson(value, clazz);
        }
    
        public <T> T get(String key, Class<T> clazz) {
            return get(key, clazz, NOT_EXPIRE);
        }
    
        public String get(String key, long expire) {
            String value = redisTemplate.opsForValue().get(key);
            if(expire != NOT_EXPIRE){
                redisTemplate.expire(key, expire, TimeUnit.SECONDS);
            }
            return value;
        }
    
        public String get(String key) {
            return get(key, NOT_EXPIRE);
        }
    
        public void delete(String key) {
            redisTemplate.delete(key);
        }
    
        /**
         * Object转成JSON数据
         */
        private String toJson(Object object){
            if(object instanceof Integer || object instanceof Long || object instanceof Float ||
                    object instanceof Double || object instanceof Boolean || object instanceof String){
                return String.valueOf(object);
            }
            return JSON.toJSONString(object);
        }
    
        /**
         * JSON数据,转成Object
         */
        private <T> T fromJson(String json, Class<T> clazz){
            return JSON.parseObject(json, clazz);
        }
    }
    

      

  • 相关阅读:
    c学习第3天
    [BZOJ2124] 等差子序列
    CF710F String Set Queries
    Cow Hopscotch (dp+树状数组优化)
    CF528D Fuzzy Search (bitset)
    Gym 101667L Vacation Plans (dp)
    Codeforces 432D Prefixes and Suffixes (kmp+dp)
    [题解]BZOJ2115 XOR
    洛谷 P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
    从中国矢量图筛选出江苏省行政区划图
  • 原文地址:https://www.cnblogs.com/john123/p/11037282.html
Copyright © 2011-2022 走看看