Spring Boot整合Redis的客户端Jedis
首先pom.xml配置文件引入Jedis的包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.1.0</version>
</dependency>
其次application.properties配置文件
在配置文件中添加一些关于redis的配置信息。有些参数可以不配置,根据自己的需求来。
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=82.156.29.86
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=ruoyu123456
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=20
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=10
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=1000
简单测试
在测试文件夹下创建一个一个测试类,用来简单的测试一下能否正常连接到redis数据库。
代码如下:
@SpringBootTest
public class JedisTest {
//通过@Value注解的方式把application.properties中的数据注入进来
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.password}")
private String password;
@Test
public void connectTest() {
Jedis jc= new Jedis(host, port);
jc.auth(password);
String setResult = jc.set("springboot", "test"); //向redis插入一条数据
if("OK".equals(setResult)) {
System.out.println("set success!");
}
}
}
JedisPool
在实际开发中,肯定不会像上面那样自己new一个Jedis的实例。我们要自动注入Jedis的实例,然后在需要使用的地方直接@AutoWired取出来就好了。
JedisConfigure配置
我们写一个redis的配置类
@Configuration
public class JedisConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Value("${spring.redis.password}")
private String password;
@Value("${spring.redis.jedis.pool.max-active}")
private int maxActive;
@Value("${spring..redis.timeout}")
private int timeout;
public JedisPoolConfig jedisPoolConfig(){ //这个是修改redis性能的时候需要的对象
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxWaitMillis(timeout); //连接超时时间
jedisPoolConfig.setMaxTotal(maxActive); //连接池最大连接数
return jedisPoolConfig;
}
//把JedisPool注入到IoC容器中
//然后在其他地方(比如Service,Controller)就可以通过@AutoWired取出JedisPool的实例使用
@Bean
public JedisPool jedisPool(){
JedisPoolConfig jedisPoolConfig = jedisPoolConfig();
return new JedisPool(jedisPoolConfig,host,port, timeout, password); //JedisPool的连接池
}
}
使用
下面写了一个测试用例来测试Jedis的配置类是否能工作。在service或者controller中的使用类似
//测试JedisConfig是否配置成功
@SpringBootTest
public class JedisTest {
@Autowired
private JedisPool jp; //注入JedisPool的实例
@Test
public void connectTest() {
Jedis jd = jp.getResource(); //从连接池中取出一个Jedis实例
String setResult = jd.set("jedispool", "test"); //进行插入kv操作
if("OK".equals(setResult)) {
System.out.println("set success!");
}
}
}
JedisCluster
如果Redis服务器是一个集群,有多个IP地址如何操作(后续有空补上)
参考文献:
https://www.cnblogs.com/keatsCoder/p/12609109.html