中间件 --- Redis
@
目录前言
一、什么是jedis
- jedis是 Java语言 连接 redis服务的一个工具,常用的包括 Jedis、SpringData Redis、Lettuce
- java-jedis 操作redis 和 redis自身的命令完全一致。
二、使用步骤
1.Jedis 读写redis数据(案例)
2. 编码
2.1 设定业务方法:
2.2 设定线程类,模拟用户调用:
2.3 设计redis控制方案:
2.4 设计启动主程序:
3. Jedis 工具类配置
如果每次使用redis 都通过创建一个连接然后关闭的方式来进行会导致效率非常低。因此往往采用 jedis连接池的方式进行操作。
3.1 配置文件
# 最大可用连接数
redis.maxTotal=1000
# 最大空闲连接数
redis.maxIdle=100
# 最小空闲连接数
redis.minIdle=50
# 当池内没有返回对象时,最大等待时间
redis.maxWaitMillis=10000
# 当调用borrow Object方法时,是否进行有效性检查
redis.testOnBorrow=true
# 当调用return Object方法时,是否进行有效性检查
redis.testOnReturn=true
# 空闲连接检测线程,检测的周期,毫秒数。如果为负值,则表示不运行”检测线程“,默认为-1
redis.timeBetweenEvictionRunsMills=30000
# 向调用者输出”连接“对象时,是否检测它的空闲超时
redis.testWhileIdle=true
# 对于”空闲连接“检测线程而言,每次检测的连接资源的个数,默认为3
redis.numTestsPerEvictionRun=50
# 服务器IP
redis.ip=xxxx
# 服务器端口
redis.port=xxxx
3.2 代码编写
private static JedisPool jp;
private static String host;
private static Integer port;
private static Integer maxTotal; //最大连接数
private static Integer maxIdle; //最大空闲连接数
static{
//获取xxx.properties文件内容
ResourceBundle rb = ResourceBundle.getBundle("redis");
host = rb.getString("redis.host");
port = Integer.parseInt(rb.getString("redis.port"));
maxTotal = Integer.parseInt(rb.getString("redis.maxTotal"));
maxIdle = Integer.parseInt(rb.getString("redis.maxIdle"));
//生成jedis连接池配置
JedisPoolConfig jpc = new JedisPoolConfig();
jpc.setMaxTotal(maxTotal);
jpc.setMaxIdle(maxIdle);
jp = new JedisPool(jpc,host,port);
}
// 获取 redis连接
public static Jedis getJedis(){
return jp.getResource();
}
这里 ResourceBundle
类是用来专门获取 xxx.properties类型的配置文件内容的工具类。
ResourceBundle类是java自带的类,类路径:java.util.ResourceBundle,用来读取项目中后缀为properties的配置文件。
下面简单举例说明一下用法:
- 数据准备
1)配置文件名称:application.properties(可将文件存放在工程的resource目录下,或者lib目录下)
2)配置文件内容:
dataBaseIp=127.0.0.1
user.name=root
user.password=123456
- ResourceBundle类实现读取application.properties中key对应的value的步骤:
1)获取配置文件的名称,使用getBundle()方法
ResourceBundle resourceBundle = ResourceBundle.getBundle("application");//不需要写后缀名
2)获取资源文件中的信息:使用getString()方法
String dataBaseIp = resourceBundle.getString("dataBaseIp");//获取资源application中的dataBaseIp字段的值——127.0.0.1
String userName = resourceBundle.getString("user.name");//获取资源application中的user.name字段的值——root
- 在工程中调用步骤2中读取到的值即可,不赘述。