目錄
集成方式
我們分別可以通過直接集成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");
}
}