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);
        }
    }
    一个小小后端的爬行痕迹
  • 相关阅读:
    DVWA 黑客攻防演练(十)反射型 XSS 攻击 Reflected Cross Site Scripting
    DVWA 黑客攻防演练(九) SQL 盲注 SQL Injection (Blind)
    DVWA 黑客攻防演练(八)SQL 注入 SQL Injection
    DVWA 黑客攻防演练(七)Weak Session IDs
    DVWA 黑客攻防演练(六)不安全的验证码 Insecure CAPTCHA
    DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
    工作流表结构设计
    Visual Studio 2019尝鲜----新建空项目体验
    《使用CSLA 2019:CSLA .NET概述》原版和机译文档下载
    .NET快速开发平台的在线预览
  • 原文地址:https://www.cnblogs.com/heikedeblack/p/14981923.html
Copyright © 2011-2022 走看看