准备工作
在Linux中开启redis服务,并传入一个变量username,赋值为yyj:
第一个Jedis程序
导包
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
测试代码
public class JedisTest {
@Test
public void test(){
//1.获得连接对象,参数为redis所在的服务器地址及端口号
Jedis jedis = new Jedis("192.168.75.130", 6379);
//2.获得数据
String username = jedis.get("username");
System.out.println(username);
jedis.close();
}
}
这里的redis服务器地址查找方式:
yyj@yyj-virtual-machine:~$ ifconfig -a
这样我们通过运行Redis的主机IP地址和Redis的端口号,然后就可以直接get到username的值了。
Jedis连接池
Jedis和数据库连接库一样,都有连接池,即JedisPool,通过简单的配置即可直接从连接池中取Jedis对象。
测试代码如下:
public void test2(){
//1.创建Jedis连接池配置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//设置最小和最大闲置个数
jedisPoolConfig.setMaxIdle(5);
jedisPoolConfig.setMaxIdle(10);
//设置连接池最大个数
jedisPoolConfig.setMaxTotal(30);
//2. 创建Jedis连接池
JedisPool jedisPool = new JedisPool(jedisPoolConfig, "192.168.75.130", 6379);
//3.从连接池中获取Jedis对象
Jedis jedis = jedisPool.getResource();
//4.操纵数据
jedis.set("age","20");
System.out.println(jedis.get("age"));
//5.关闭资源
jedis.close();
jedisPool.close();
}
}
封装成工具类
将上面的Redis连接池封装成一个工具类,其他地方的代码直接调用工具类来执行即可。
首先在src下的resource目录下新建一个配置文件redis.properties,把一些配置信息存储在配置文件中:
#Redis连接信息
redis.ip = 192.168.75.130
redis.port = 6379
#Redis配置信息
redis.minIdle = 5
redis.maxIdle = 30
redis.maxTotal = 30
新建 JedisUtils.java:
public class JedisUtils {
private static JedisPool jedisPool = null;
/** 获取连接 **/
public static Jedis getJedis(){
if(jedisPool == null){
initJedisPool();
}
return jedisPool.getResource();
}
/** 关闭连接 **/
public static void closeJedis(Jedis jedis) {
jedis.close();
}
private static void initJedisPool() {
InputStream in = JedisUtils.class.getClassLoader().getResourceAsStream("redis.properties");
Properties properties = new Properties();
try {
properties.load(in);
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMinIdle(Integer.parseInt(properties.getProperty("redis.minIdle")));
poolConfig.setMaxIdle(Integer.parseInt(properties.getProperty("redis.maxIdle")));
poolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("redis.maxTotal")));
jedisPool = new JedisPool(
poolConfig,
properties.getProperty("redis.ip"),
Integer.parseInt(properties.getProperty("redis.port")));
} catch (IOException e) {
System.out.println("载入配置文件错误");
e.printStackTrace();
}
}
}
测试代码如下:
@Test
public void test3() {
Jedis jedis = JedisUtils.getJedis();
System.out.println(jedis.get("age"));
JedisUtils.closeJedis(jedis);
}
目录结构如下:
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!