Redis:二、jedis线程池

中间件 — 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. 数据准备

1)配置文件名称:application.properties(可将文件存放在工程的resource目录下,或者lib目录下)

2)配置文件内容:

 dataBaseIp=127.0.0.1

 user.name=root

 user.password=123456
  1. 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

  1. 在工程中调用步骤2中读取到的值即可,不赘述。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值