• 常用公共工具类——Redis工具类


    @Component
    public class RedisUtils {
        @Autowired
        private RedisTemplate<String, Object> redisTemplate;
    
        @Autowired
        private ValueOperations<String, String> valueOperations;
        @Autowired
        private HashOperations<String, String, Object> hashOperations;
        @Autowired
        private ListOperations<String, Object> listOperations;
        @Autowired
        private SetOperations<String, Object> setOperations;
        @Autowired
        private ZSetOperations<String, Object> zSetOperations;
        /**  默认过期时长,单位:秒 */
        public final static long DEFAULT_EXPIRE = 60 * 60 * 24;
        /**  不设置过期时长 */
        public final static long NOT_EXPIRE = -1;
        private final static Gson gson = new Gson();
    
        public void set(String key, Object value, long expire){
            //通过ValueOperations设置值
            valueOperations.set(key, toJson(value));
            if(expire != NOT_EXPIRE){
                //设置key的失效时间
                redisTemplate.expire(key, expire, TimeUnit.SECONDS);
            }
        }
    
        /**
         * set存数据
         * @param key
         * @param value
         */
        public void set(String key, Object value){
            set(key, value, DEFAULT_EXPIRE);
        }
    
    
    
        public <T> T get(String key, Class<T> clazz, long expire) {
            //通过ValueOperations获取值
            String value = valueOperations.get(key);
            if(expire != NOT_EXPIRE){
                //设置key的失效时间
                redisTemplate.expire(key, expire, TimeUnit.SECONDS);
            }
            return value == null ? null : fromJson(value, clazz);
        }
        /**
         * get获取数据
         * @param key
         * @param clazz
         * @param <T>
         * @return
         */
        public <T> T get(String key, Class<T> clazz) {
            return get(key, clazz, NOT_EXPIRE);
        }
    
    
        public String get(String key, long expire) {
            String value = valueOperations.get(key);
            if(expire != NOT_EXPIRE){
                redisTemplate.expire(key, expire, TimeUnit.SECONDS);
            }
            return value;
        }
    
        /**
         * get获取数据
         * @param key
         * @return
         */
        public String get(String key) {
            return get(key, NOT_EXPIRE);
        }
    
        public void delete(String key) {
            //删除单个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 gson.toJson(object);
        }
    
        /**
         * JSON数据,转成Object
         */
        private <T> T fromJson(String json, Class<T> clazz){
            return gson.fromJson(json, clazz);
        }
    }
    一个小小后端的爬行痕迹
  • 相关阅读:
    win10下安装Oracle 11g 32位客户端遇到INS-13001环境不满足最低要求
    kubernetes环境下私有仓库搭建
    Build a Restful Service
    大数据的开始:安装hadoop
    调试Ajax调用的利器firebug
    Oracle Process Cloud流程云实践
    Kubernetes环境下如何运行Coherence缓存集群
    Kubernetes的负载均衡问题(Nginx Ingress)
    Kubernetes master节点的高可用配置
    Kubernetes环境下调整WebLogic JVM基本参数
  • 原文地址:https://www.cnblogs.com/heikedeblack/p/14981923.html
Copyright © 2020-2023  润新知