• RedisPool类使用Jedis操作Redis


      以下是使用jedis操作本机redis缓存的基本方法,jedis对象封装了redis执行的很多操作命令,获取到jedis对象之后(通过jedisPool连接池获取)就可以操作redis缓存了。

     1 public class RedisPool {
     2 
     3     //jedis封装好了连接池对象,首先使用连接池对象
     4     private static JedisPool jedisPool;
     5     //连接池最大可连接数量
     6     private static Integer maxTotal= Integer.parseInt(PropertiesUtil.getProperty("redis.max.total", "20"));
     7     //连接池最大空闲数量
     8     private static Integer maxIdle=Integer.parseInt(PropertiesUtil.getProperty("redis.max.idle", "20"));
     9     //连接池最小空闲数量
    10     private static Integer minIdle=Integer.parseInt(PropertiesUtil.getProperty("redos.min.idle", "20"));
    11     //在borrow一个jedis实例的时候,是否要进行验证操作,如果赋值true,则是可用的
    12     //一般将JedisPool中的连接称为连接实例
    13     private static Boolean testOnBorrow=Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.borrow", "true"));
    14     //在return一个jedis实例的时候,是否要进行验证操作,如果赋值true,则放回jedispool的实例是可用的
    15     private static Boolean testOnReturn=Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.return", "true"));
    16   
    17     //初始化连接池对象使用的ip(下面的这两个是比较关键的,契合了本机的redis的基本属性)
    18     private static String redisIp=PropertiesUtil.getProperty("redis.ip");
    19     //初始化连接池对象使用的port
    20     private static Integer redisPort = Integer.parseInt(PropertiesUtil.getProperty("redis.port"));
    21 
    22 
    23     //初始化JedisPool
    24     private static void initPool(){
    25         JedisPoolConfig config = new JedisPoolConfig();
    26 
    27         config.setMaxTotal(maxTotal);
    28         config.setMaxIdle(maxIdle);
    29         config.setMinIdle(minIdle);
    30 
    31         config.setTestOnBorrow(testOnBorrow);
    32         config.setTestOnReturn(testOnReturn);
    33 
    34         //当连接耗尽的时候设置阻塞,false会抛出异常,true阻塞直到超时,默认为true,但是如果超时的话也会抛出超时异常的
    35         config.setBlockWhenExhausted(true);
    36 
    37         //初始化连接池对象(调用JedisPool的构造器,上面已声明了jedisPool)
    38         jedisPool = new JedisPool(config, redisIp, redisPort, 1000*2);
    39     }
    40 
    41     //初始化jedis连接池(在加载本类的时候就会初始化即执行initpool()方法)
    42     static{
    43         initPool();
    44     }
    45 
    46     //在连接池中获取jedis连接(主要是供该类调用)
    47     public static Jedis getJedis(){
    48         return jedisPool.getResource();
    49     }
    50     //在使用完了之后归还jedis连接
    51     public static void returnResource(Jedis jedis){
    52         jedisPool.returnResource(jedis);//源码已进行空判断
    53     }
    54     //返回已破坏的jedis连接
    55     public static void returnBrokenResource(Jedis jedis){
    56         jedisPool.returnBrokenResource(jedis);
    57     }
    58 
    59 
    60     //测试
    61     public static void main(String[] args){
    62         Jedis jedis = jedisPool.getResource();
    63         jedis.set("firstKey", "firstValue");
    64         returnResource(jedis);
    65         jedisPool.destroy();
    66         System.out.println("program is end");
    67     }
    68 
    69 }

       以下是关于redis的配置文件

     1 #redis config start
     2 
     3 #最大连接数
     4 redis.max.total=20
     5 #最大空闲数
     6 redis.max.idle=10
     7 #最小空闲数
     8 redos.min.idle=2
     9 #从jedis连接池获取连接时,校验并返回可用的连接
    10 redis.test.borrow=true
    11 #把连接放回jedis连接池时,校验并返回可用的连接
    12 redis.test.return=false
    13 
    14 redis.ip=127.0.0.1
    15 redis.port=6379
    16 
    17 #redis config end
  • 相关阅读:
    自考-信息系统开发与管理(一)首篇概述
    html乱码问题
    Failed to create client: error while trying to communicate with apiserver: 报错解决
    Helm(bitnami)部署zookeeper和kafka集群
    Helm部署RabbitMQ集群
    Kubernetes通过插件,自动发现注册Rabbitmq集群
    Kubernetes使用operator安装Redis集群
    Kubernetes部署单Redis
    Kubernetes搭建RooK+Ceph
    Kubernetes的服务质量(QoS)
  • 原文地址:https://www.cnblogs.com/dashenaichicha/p/12150352.html
Copyright © 2020-2023  润新知