redis工具类

Posted john123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
    

  

以上是关于redis工具类的主要内容,如果未能解决你的问题,请参考以下文章

Redis操作工具类——RedisUtil

如何利用redis来进行分布式集群系统的限流设计

Redis操作List工具类封装,Java Redis List命令封装

Redis缓存穿透,缓存击穿,缓存雪崩解决方案以及封装Redis工具类

Redis缓存穿透,缓存击穿,缓存雪崩解决方案以及封装Redis工具类

Redis缓存穿透,缓存击穿,缓存雪崩解决方案以及封装Redis工具类