开发者社区> 一只叉叉> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

4、Redis连接池的构建与测试

简介: 首先我们在我们的项目中新建一个 RedisPool类 代码如下: package com.mmall.common; import com.mmall.
+关注继续查看

首先我们在我们的项目中新建一个 RedisPool
代码如下:

package com.mmall.common;

import com.mmall.util.PropertiesUtil;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * @author Chakid
 * @since 2018-10-30 20:15
 */
public class RedisPool {
    private static JedisPool pool; //jedis连接池

    //redis所在的IP
    private static String redisIp=PropertiesUtil.getProperty("redis.ip");

    //redis开放的端口
    private static Integer redisPort =Integer.parseInt(PropertiesUtil.getProperty("redis.port"));

    //jedis最大连接数
    private static Integer maxTotal= Integer.parseInt(PropertiesUtil.getProperty("redis.max.total","20"));

    //最大空闲连接数
    private static Integer maxIdle= Integer.parseInt(PropertiesUtil.getProperty("redis.max.idle","10"));

    //最小空闲连接数
    private static Integer minIdle= Integer.parseInt(PropertiesUtil.getProperty("redis.min.idle","2"));

    //从jedis连接池获取连接时,校验并返回可用的连接
    private static boolean testBorrow= Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.borrow","true"));

    //把连接放回jedis连接池时,校验并返回可用的连接
    private static boolean testReturn= Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.return","true"));


    //初始化连接池
    private static void initPool(){

        JedisPoolConfig config = new JedisPoolConfig();

        //给config set相关值
        config.setMaxTotal(maxTotal);
        config.setMaxIdle(maxIdle);
        config.setMinIdle(minIdle);
        config.setTestOnBorrow(testBorrow);
        config.setTestOnReturn(testReturn);

        //连接耗尽时,是否阻塞,false会抛出异常,true直到阻塞超时,默认为true
        config.setBlockWhenExhausted(true);

        pool = new JedisPool(config,redisIp,redisPort,1000*2);
    }


    //实例化连接池
    static {
        initPool();
    }

    //从连接池中获取一个连接对象
    public static Jedis getJedis(){
        return pool.getResource();
    }


    //如果是一个损坏连接就放在BrokenResource
    public static void returnBrokenResource(Jedis jedis){
        pool.returnBrokenResource(jedis);
    }

    //将jedis放回连接池
    public static void returnResource(Jedis jedis){
        pool.returnResource(jedis);
    }



    //用main测试我们的连接

    public static void main(String[] args) {
        Jedis jedis = pool.getResource();

        jedis.set("chakidkey","chakidvalue");

        returnResource(jedis);

        pool.destroy();

        System.out.println("program is end~");
    }

}

然后由于我是把配置信息单独配置多出来,如果只是单独测试 Jedis的连接的话,把我下面的对应参数填到上面即可~

#start redis config

#redis所在服务器IP
redis.ip=119.29.xx.xxx

#redis的端口
redis.port=6379

#最大连接数
redis.max.total=20

#最大空闲连接数
redis.max.idle=10

#最小空闲连接数
redis.min.idle=2

#从jedis连接池获取连接时,校验并返回可用的连接
redis.test.borrow=true

#把连接放回jedis连接池时,校验并返回可用的连接 return设置为false的时候,在并发量高的时候可以提高我们的并发效率
redis.test.return=false

#end redis config

相关代码的讲解都在注释中啦~
测试代码写好之后,接下来就是测试我们的连接了:
用Xshell连接我们的服务器,打开Redis服务


img_76439a0a12d034d6468ae56a1dcedc61.png
image.png

然后Xshell启动我们的连接客户端:

img_8ee5124ff21c82604527b050b68a3f73.png
image.png

发现原本存在一些,我先把里面的删掉,执行:flushall
img_c4bd9169f76aa60949c76b2700b72b12.png
image.png

好,发现所以key都被我们清空了,接下来就要运行我们上面编写的代码,直接运行main函数即可~
OK,执行完毕,来看看我们的redis里面有没有我们刚才加的数据吧~
img_397d6900ea479115fc6547fbe5b9f115.png

咦,发现数据已经加进去了,那么测试也就成功啦~


img_ca2adbcc87e9cf187ecce086e7efc215.png
image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
windows redis安装与配置
记录redis的安装过程,方便自己以后使用,不需要再重复找资料 redis安装:https://blog.csdn.net/Q__one/article/details/76427644 如何远程连接redis:https://jingyan.
815 0
CentOS6 安装 Redis
centos6安装redis-2.8.19.tar.gz 1、检查安装依赖程序 yum install gcc-c++ yum install -y tcl yum install wget 2、获取安装文件 wget http://download.
1447 0
Mac 安装 redis
1.下载 打开官网:https://redis.io/ Download---Stable---Download3.2.8,下载最新稳定版,这里是3.2.
1378 0
Linux安装Redis单机版
Linux安装Redis单机版 下载地址: http://redis.io/download Redis版本列表: http://download.redis.io/releases/ 如果操作系统是 Windows,请参考: Windows下安装并设置Redis 如果需要配置高可用集群,请参考: http://www.
1567 0
redis的安装(Linux)和基本使用
redis的安装(Linux)和基本使用 redis(REmote DIctionary Server,远程字典服务器)在Linux上如何安装? 一、安装 1.去redis官网https://redis.io/下载最新版redis 2.下载下来的文件为redis-4.0.10.tar。
1416 0
win7x64下的redis安装与使用
win7x64下的redis安装与使用 先引用百度百科的一段话吧,具体可以到百科查看吧。 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
1375 0
Redis在windows下的下载与安装
Redis在windows下的下载与安装 redis官方下载地址:https://redis.io/download,redis 64位下载地址:https://github.com/ServiceStack/redis-windows,本人测试使用的是redis-64.3.0.503版本。
1333 0
Redis安装+启动报错
Redis安装+启动报错 首先Windows下安装 下载地址:https://github.com/MSOpenTech/redis/releases%E3%80%82  redis官方不支持windows,我一般会去GitHub去下载Redis的版本,如图所示,一般会选择下载二进制分发版(msi结尾的文件)。
1126 0
Redis的安装及创建节点、部署群集
Redis简介 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
1127 0
+关注
一只叉叉
在校大学生,一只学习Java的小菜鸟
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Redis的开发规范和常见问题
立即下载
Redis&MongoDB的同步、迁移以及混合云场景构建
立即下载
Codis 集群演化与 Redis 异步迁移
立即下载