首页 > 数据库 >Redis:二、jedis线程池

Redis:二、jedis线程池

时间:2023-02-24 21:35:21浏览次数:44  
标签:static getString 配置文件 redis Redis ResourceBundle 线程 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中读取到的值即可,不赘述。

标签:static,getString,配置文件,redis,Redis,ResourceBundle,线程,jedis
From: https://www.cnblogs.com/istitches/p/17153147.html

相关文章

  • Redis设计与实现—对象
    前言 前面介绍了Redis底层的数据类型,但是Redis常用的五种数据结构是怎样的呢?@目录前言一、对象类型介绍1.1概念1.2对象类型和编码1)type:类型2)encoding:编码和底层实现......
  • Redis设计与实现—复制原理
    前言Redis中的复制命令原理@目录前言一、旧版复制原理1.1同步1.2命令传播1.3旧版复制的缺陷二、新版复制原理2.1部分重同步2.1.1复制偏移量2.1.2复制积压缓冲区2......
  • Redis设计与实现—简单动态字符串、链表、字典
    前言《Redis设计与实现》数据结构部分有关字符串类型介绍。@目录前言一、数据结构——简单动态字符串1.1SDS定义1.2SDS与C字符串的区别1.2.1常数复杂度获取字符串长度......
  • Redis设计与实现—事件机制
    前言Redis内部消息通信机制学习和了解@目录前言一、Redis中事件的分类文件事件文件事件处理器I/O多路复用程序的实现文件事件处理器时间事件时间事件怎么处理关键的时......
  • Redis设计与实现—数据库与过期键策略
    前言深入了解一下Redis内存机制如何存储数据,以及对于过期数据采取何种策略来清理。@目录前言一、Redis服务器中的数据库二、数据库键空间2.1数据存储——键空间dict2.......
  • Redis设计与实现—跳跃表、压缩列表
    前言Redis设计与实现读书笔记,基础数据结构部分——跳跃表与压缩列表@目录前言一、跳跃表1.1跳跃表概念1.2Redis中跳跃表的实现1.3跳跃表节点(zskipListNode)1.4手动......
  • redis(4)String字符串
    前言Redis中有5大数据类型,分别是字符串String、列表List、集合Set、哈希Hash、有序集合Zset,本篇介绍Redis的字符串String Redis字符串String是Redis最基本的类型,你可......
  • Nginx+Tomcat+Redis实现负载均衡会话保持
    Nginx+Tomcat+Redis实现负载均衡会话保持......
  • 一文带你了解线程池原理
    一文带你了解线程池原理1.使用线程池的意义何在?​ 项目开发中,为了统一管理线程,并有效精准地进行排错,我们经常要求项目人员统一使用线程池去创建线程。因为我们是在受不......
  • Redis的并发竞争问题和解决方案
    什么是并发竞争比如我们现在同一个缓存key,test_key=v1。现在有A、B、C三个系统几乎同时来更新,那么原本顺序应该是A系统更新为v2、B系统更新为v3、C系统更新为v4。但是因......