Java连接Redis实例
程序员文章站
2022-05-18 10:04:50
...
目录
1 Redis文件配置
笔者使用Jedis作为Java的客户端来对Linux虚拟机上的Redis进行连接。但在连接之前需要对Redis的配置文件redis.conf进行一些修改。
首先需要将以下的bind配置项注释掉:
然后将以下的保护模式改为no(默认为yes):
之后通过该配置文件来打开redis-server,并保证其在java连接时一直处于运行状态。
2 Jedis直连
笔者使用的是jedis 3.0.1版本的maven项目构建的,其代码依赖如下所示:
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.0.1</version>
</dependency>
具体的java代码如下所示:
package com.hys.redis;
import redis.clients.jedis.Jedis;
public class RedisTest {
public static void main(String[] args) {
Jedis jedis = null;
try {
jedis = new Jedis("192.168.253.129", 6379);
System.out.println(jedis.ping());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jedis != null) {
jedis.close();
}
}
}
}
由上可以看到,连接时需要输入Linux虚拟机的ip地址和Redis服务器的端口号。如果以上配置都没问题,其运行结果应该如下所示:
PONG
3 Jedis连接池
Jedis连接池的写法如下所示:
package com.hys.redis;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
public class RedisTest {
public static void main(String[] args) {
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
poolConfig.setMaxTotal(50);
poolConfig.setMaxIdle(50);
poolConfig.setMaxWaitMillis(1000);
JedisPool jedisPool = new JedisPool(poolConfig, "192.168.253.129", 6379);
Jedis jedis = null;
try {
jedis = jedisPool.getResource();
for (int i = 0; i < 10; i++) {
Pipeline pipeline = jedis.pipelined();
for (int j = i * 1000; j < (i + 1) * 1000; j++) {
pipeline.hset("hashkey" + j, "field" + j, "value" + j);
}
pipeline.syncAndReturnAll();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jedis != null) {
jedis.close();
}
}
}
}
4 直连和连接池的对比
优点 | 缺点 | |
---|---|---|
直连 |
|
|
连接池 |
|
|