• 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++计算器后续(1)
    第七次作业
    第六次作业之计算器图形界面(之骗分)
    C++课堂作业二之反转链表
    第五次作业(计算器第三步之文件输入输出)
    ARP详解和ARP攻击
    网络基础-端口
    网络基础-子网掩码
    Informatica ODBC的使用
    linux7 grub配置文件 linux6 grub配置文件
  • 原文地址:https://www.cnblogs.com/john123/p/11037282.html
Copyright © 2020-2023  润新知