Spring Boot : 集成redis(九)

目錄

集成方式

我們分別可以通過直接集成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

發佈了41 篇原創文章 · 獲贊 35 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章