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);
    }
}

  

原文地址:https://www.cnblogs.com/john123/p/11037282.html

时间: 2024-10-09 01:05:30

redis工具类的相关文章

单服务缓存redis工具类

import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * 单服务缓存redis工具类(需要额外jar包jedis) */ public class RedisSingletonPool { private static String ip = ConfigUtil.readConfigForObject("SIN

Redis 工具类

项目里的Redis 工具类,写下来以备后用 1 public class RedisConnector 2 { 3 public class RedisParseResult<T> 4 { 5 public bool success; 6 public T value; 7 } 8 private static string ConnectionString { get; set; } 9 private static ConnectionMultiplexer RedisConnection

springboot2.2.2整合redis与redis 工具类大全

1.springboot2.2.2整合redis教程很多,为此编写了比较完整的redis工具类,符合企业级开发使用的工具类 2.springboot与redis maven相关的依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <

SpringBoot整合Redis及Redis工具类

前言 想做一个秒杀项目,问了几个大佬要了项目视频,结果,自己本地实践的时候,发现不太一样,所以写下这篇,为以后做准备. 环境配置 IDE:IDEA 环境:Windows 数据库:Redis Maven配置 习惯用SpringBoot的小伙伴都知道,需要配置Maven,添加几个dependency. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-

Springboot 框架下操作redis,并建立redis工具类

一.通过idea建立一个springboot项目 1.File-New-Project--SpringInitializr--Next 持续点击下一步即可. 二.建立包 需了解知识点:Redis5种基本数据类型:String/list/set/zset/hash:zset与set的区别在于zset可以排序但它们都不允许有重复值存在. 1.SpringBoot集成Redis 1.1新增配置文件信息 ##################################################

redis工具类封装

各位读者,大家好! 本次给大家带来redis的封装类,可以很优雅的操作redis,本工具结合了springframework中的部分注解和类,适用于spring框架的项目使用. 首先,创建一个配置类ConstantConfig,可以很方便读取配置文件: 1 package com.cheng2839.config; 2 3 import lombok.Data; 4 import org.springframework.beans.factory.annotation.Value; 5 impo

redis 工具类 单个redis、JedisPool 及多个redis、shardedJedisPool与spring的集成配置

单个redis.JedisPool <!-- start redis配置 --> <!-- redis的连接池pool,不是必选项:timeout/password --> <bean id = "jedisPool" class="redis.clients.jedis.JedisPool"> <constructor-arg index="0" ref="jedisPoolConfig&qu

python 连接redis工具类

#!/usr/bin/python # coding=utf-8 __author__ = 'shuangjiang' import redis import sys default_encoding = 'utf-8' if sys.getdefaultencoding() != default_encoding: reload(sys) sys.setdefaultencoding(default_encoding) class myRedis: def __init__(self,host

java redis 工具类

1 package com.mohecun.jedis; 2 3 public interface JedisClient { 4 5 String set(String key, String value); 6 String get(String key); 7 Boolean exists(String key); 8 Long expire(String key, int seconds); 9 Long ttl(String key); 10 Long incr(String key)