zoukankan      html  css  js  c++  java
  • 常用公共工具类——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);
        }
    }
    一个小小后端的爬行痕迹
  • 相关阅读:
    借助HTML分别禁用IE8, IE9的兼容视图模式的小技巧
    IE兼容性问题
    php解析html类库simple_html_dom
    jquery 自定义类
    JS:收集的一些Array及String原型对象的扩展实现代码
    JS 替换
    JQ 取窗口的宽度.窗口的框度历
    java判断时间是否在时间段内 开始时间大于结束时间返回true
    bootstrap4 nav 菜单
    CSS样式居中 -webkit-background-size:center;background-size:center;
  • 原文地址:https://www.cnblogs.com/heikedeblack/p/14981923.html
Copyright © 2011-2022 走看看