SpringBoot整合Redis入门教程(使用Jedis)

SpringBoot整合Redis入门教程(使用Jedis)

一、引入依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.1.0</version>
        </dependency>

二、开启Redis数据库,配置文件

server:
  port: 8090
spring:
  redis:
    host: localhost
    port: 6379

三、config.RedisConfig

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

@Slf4j
@Configuration
public class RedisConfig {

    @Value("${spring.redis.host}")
    public String host;
    @Value("${spring.redis.port}")
    public int port;

    @Bean
    public JedisPool redisPoolFactory() {
        log.info("JedisPool>>>");
        log.info("redis地址" + host + ":" + port);
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port);
        return jedisPool;
    }
}

四、util.RedisUtil

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import javax.annotation.Resource;

@Component
@Slf4j
public class RedisUtil {
    @Resource
    public JedisPool jedisPool;

    /**
     * @description:
     * 返还连接到连接池
     */
    public static void returnResource(Jedis jedis) {
        if (jedis != null) {
            jedis.close();
        }
    }

    public String get(String key,int indexDB) {
        Jedis jedis = null;
        String value = null;
        try {
            jedis = jedisPool.getResource();
            jedis.select(indexDB);
            value = jedis.get(key);
            log.info(value);
        } catch (Exception e) {
            log.error(e.getMessage());
        } finally {
            returnResource(jedis);
        }
        return value;
    }

    public String set(String key, String value,int indexDB) {
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            jedis.select(indexDB);
            return jedis.set(key, value);
        } catch (Exception e) {
            log.error(e.getMessage());
            return "0";
        } finally {
            returnResource(jedis);
        }
    }

    /**
     * @description:
     * 设置key的有效期,成功返回1 如果存在 和 发生异常 返回 0
     * value是有效期时长,单位秒
     */ 
    public Long expire(String key, int value, int indexDB) {
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            jedis.select(indexDB);
            return jedis.expire(key, value);
        } catch (Exception e) {
            log.error(e.getMessage());
            return 0L;
        } finally {
            returnResource(jedis);
        }
    }
}

五、controller.RedisController

import com.yyf.mybatisdemo.util.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@RestController
@Slf4j
public class RedisController {
    @Resource
    public RedisUtil redisUtil;

    @GetMapping("/redis/{indexDB}/{key}")
    public String getRedis(@PathVariable int indexDB, @PathVariable String key) {
        return redisUtil.get(key, indexDB);
    }

    @PostMapping("redis/{indexDB}/{key}/{value}")
    public String setRedis(@PathVariable int indexDB, @PathVariable String key, @PathVariable String value) {
        String res = redisUtil.set(key, value, indexDB);
        Long expire = redisUtil.expire(key, 120, indexDB);
        log.info("expire=" + expire);
        return res;
    }
}

六、测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值