Jedis简介

Redis和Jedis的关系

简单来说,Jedis就是Redis官方推荐的Java连接Redis数据库的一个工具。

在Java中,Redis对应于Jedis就相当于关系型数据库(如MySQL)对应于JDBC。
在这里插入图片描述

使用Jedis前的准备工作

  • 下载Jedis的jar包,点这里搜索jedis(不要搜索Jedis)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在Java中使用Jedis连接Redis

// 连接Redis(第一个参数是Redis的IP地址,第二个参数是Redis的端口号)
Jedis jedis = new Jedis("localhost", 6379);
// 尝试操作Redis
jedis.set("msg", "Hello World!");
String msg = jedis.get("msg");	
System.out.println(msg);	// 打印"Hello World!"
// 关闭Redis连接
jedis.close();

JedisAPI文档地址

Jedis连接池

  • Jedis提供了连接池机制,所以在生产环境中需要在Jedis连接池中获取对Redis的连接,Jedis的连接池类为redis.clients.jedis.JedisPool。
基于默认参数的Jedis连接池
// 初始化连接池类(使用默认连接池参数)
JedisPool jp = new JedisPool("localhost", 6379);
// 获取一个Jedis连接
Jedis jedis = jp.getResource();
  • 上面这个示例,只为连接池指定了要连接的Redis的IP和端口号,而未指定连接池的其他参数。

  • 查看源码,可以知道JedisPool的这个构造方法使用了GenericObjectPoolConfig这个类对象来设定Jedis连接池的默认参数:
    在这里插入图片描述

  • GenericObjectPoolConfig类中初始化了各种连接池默认参数:
    在这里插入图片描述

自定义Jedis连接池的参数
  • JedisPoolConfig类是GenericObjectPoolConfig类的子类,因此可以使用它来自定义Jedis连接池的参数:
JedisPoolConfig jpc = new JedisPoolConfig();
jpc.setMaxTotal(30);  // 设置连接池的最大连接数
jpc.setMaxIdle(8);    // 设置连接池允许的最大空闲连接数
// 初始化连接池类(使用自定义连接池参数)
JedisPool jp = new JedisPool(jpc, "localhost", 6379);
// 从连接池获取一个Jedis连接

Jedis简易工具类开发

  • 封装连接参数

src/jedisConfig.properties:

jedis.host=localhost
jedis.port=6379
jedis.maxTotal=30
jedis.maxIdle=10
  • 工具类代码

JedisUtils.java:

public class JedisUtils {
	private static JedisPool jp;
	
	static {
		// 加载Jedis连接池配置参数
		InputStream is = JedisUtils.class.getResourceAsStream("/jedisConf.properties");
		Properties prop = new Properties();
		try {
			prop.load(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
		String host = prop.getProperty("jedis.host");
		int port = Integer.parseInt(prop.getProperty("jedis.port"));
		int maxTotal = Integer.parseInt(prop.getProperty("jedis.maxTotal"));
		int maxIdle = Integer.parseInt(prop.getProperty("jedis.maxIdle"));
		
		// 设置Jedis连接池参数
		JedisPoolConfig jpc = new JedisPoolConfig();
		jpc.setMaxTotal(maxTotal);
		jpc.setMaxIdle(maxIdle);
		
		// 初始化Jedis连接池
		jp = new JedisPool(jpc, host, port);
	}
	
	// 从Jedis连接池获取连接
	public static Jedis getJedis() {
		return jp.getResource();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值