Spring Boot : 集成redis(九)

本文详细介绍了如何在Spring Boot项目中集成Jedis客户端,并通过示例代码展示了如何配置Jedis连接池、设置和获取Redis中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

集成方式

我们分别可以通过直接集成jedis包或者集成spring-data-redis的方式,网上大部分都是用的spring,但是我比较习惯直接用jedis包.而且spring-data-redis也是对jedis进行的二次封装.当然也有同学觉得spring-data-redis方便的,有时间我会补充spring-data-redis的springboot集成方法.和jedis很像,其实很多插件的集成都差不多的.

代码

pom.xml

    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.8.2</version>
    </dependency>

application.yml

jedis :
  pool :
    host : 192.168.133.243
    port : 6379
    password: 123456
    timeout: 1000
    config :
      maxTotal: 100
      maxIdle: 10
      maxWaitMillis : 100000

JedisConfig.java

package cn.milo.controllor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
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;

/**
 * Created by admin on 2017/8/25.
 */
@Configuration
public class JedisConfig {

    @Bean(name= "jedis.pool")
    @Autowired
    public JedisPool jedisPool(@Qualifier("jedis.pool.config") JedisPoolConfig config,
                               @Value("${jedis.pool.host}")String host,
                               @Value("${jedis.pool.port}")int port,
                               @Value("${jedis.pool.timeout}")int timeout,
                               @Value("${jedis.pool.password}")String password) {
        return new JedisPool(config, host, port , timeout , password);
    }

    @Bean(name= "jedis.pool.config")
    public JedisPoolConfig jedisPoolConfig (@Value("${jedis.pool.config.maxTotal}")int maxTotal,
                                            @Value("${jedis.pool.config.maxIdle}")int maxIdle,
                                            @Value("${jedis.pool.config.maxWaitMillis}")int maxWaitMillis) {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(maxTotal);
        config.setMaxIdle(maxIdle);
        config.setMaxWaitMillis(maxWaitMillis);
        return config;
    }
}

JedisClient.java

package cn.milo.controllor;

/**
 * Created by admin on 2017/8/25.
 */
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

@Component
public class JedisClient {

    @Autowired
    private JedisPool jedisPool;

    public void set(String key, String value) throws Exception {
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            jedis.set(key, value);
        } finally {
            //返还到连接池
            jedis.close();
        }
    }

    public String get(String key) throws Exception  {

        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            return jedis.get(key);
        } finally {
            //返还到连接池
            jedis.close();
        }
    }

}

JedisDemo .java

package cn.milo.controllor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created by admin on 2017/8/25.
 */
@Controller
public class JedisDemo {

    @Autowired
    private JedisClient redisClinet;

    @RequestMapping("/set")
    @ResponseBody
    public String set(String key, String value) throws Exception{
        redisClinet.set("1", "1");
        return "success";
    }

    @RequestMapping("/get")
    @ResponseBody
    public String get(String key) throws Exception {
        return redisClinet.get("1");
    }
}

测试

http://ip:port/set
http://ip:port/get

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值