封装redis工具类 实现快速存取值

发布时间:2022-07-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了封装redis工具类 实现快速存取值脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是封装好的redis工具类

保存位置

封装redis工具类 实现快速存取值

 

1 reids工具类

这个类封装的是redis,直接使用这个类的方法向reids中存取值,设置过期时间

import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

@Component
@RequiredArgsConstructor
public class CacheService {
    /**
     * redis工具类
     */

    //获得默认StringRedisTemplate
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    //设置默认事件
    public static final long defaultTime = 2;


    /**
     * 存入redis 设置默认有效时间的缓存
     */
    public void setCacheWithDefaultTime(String key, String value) {
        stringRedisTemplate.opsForValue().set(key, value, defaultTime, TimeUnit.MINUTES);

    }

    /**
     * 存入redis 设置自定义有效时间的缓存
     */
    public void setCacheWithCustomerTime(String key, String value, long minute) {
        stringRedisTemplate.opsForValue().set(key, value, minute, TimeUnit.MINUTES);

    }

    /**
     * 设置无效时间的缓存
     * 存入redis
     */
    public void setCache(String key, String value) {
        stringRedisTemplate.opsForValue().set(key, value);

    }

    /**
     * 判断redis是否存在
     */
    public boolean exitsKey(String key) {
        return stringRedisTemplate.hasKey(key);
    }

    /**
     * 获得redis
     */
    public String getCache(String key) {
        if (exitsKey(key)) {

            return stringRedisTemplate.opsForValue().get(key);
        }
        return "";
    }

    /**
     * 清除redis
     */
    public void clearCache(String key) {
        stringRedisTemplate.delete(key);
    }

}

2 Json 转换类

上面封装的redis工具类存入的key-value都是str,实际使用时

存——要将后端的各种数据类型(主要是单个obj以及各种集合)转为str

取——将value转回原来的数据类型

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.CollectionLikeType;

import java.util.List;

/**'
 * Json 转换类
 */
public class JsonUtils {

    static ObjectMapper objectMapper=new ObjectMapper();

    /**
     * 对象转字符串
     */
    public static String obj2Str(Object obj) {

        try {
            String s = objectMapper.writeValueAsString(obj);
            return s;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return "";

    }


    /**
     * 字符串转对象
     */
    public static <T> T str2Obj(String str, Class<T> clazz) {

        try {
            T t = objectMapper.readValue(str, clazz);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 字符串转换集合
     */

    public static <T> List<T> str2List(String str, Class<T> clazz){
        CollectionLikeType collectionLikeType = objectMapper.getTypeFactory().constructCollectionLikeType(List.class, clazz);
        try {
            List<T> list = objectMapper.readValue(str, collectionLikeType);
            return list;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;

    }
}

脚本宝典总结

以上是脚本宝典为你收集整理的封装redis工具类 实现快速存取值全部内容,希望文章能够帮你解决封装redis工具类 实现快速存取值所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: