1、下载Windows环境redis安装:

2、下载jar包:

commons-pool2-2.4.2.jar

jedis-2.9.0.jar

3、项目结构:

Resis常用命令及数据类型

4、代码说明:

package com.test.redis;

import java.util.ArrayList;
import java.util.List;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;

public class RedisUtil {

    private static Jedis jedis;//非切片额客户端连接
    private static JedisPool jedisPool;//非切片连接池
    private static ShardedJedis shardedJedis;//切片额客户端连接
    private static ShardedJedisPool shardedJedisPool;//切片连接池
    
    //非切片池Jedis配置静态代码块
    static {
        JedisPoolConfig config = new JedisPoolConfig();
        //config.setMaxActive(10);在commons-pool2-2.4.2.jar不适用,改为了setMaxTotal
        //设置池在给定时间段内可以分配的对象数量(逐出客户端或空闲等待逐出),即:最大连接数,负数标识没有限制
        config.setMaxTotal(10);
        //最大空闲数
        config.setMaxIdle(5);
        //获取连接最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted)超时则抛出异常, 小于零:阻塞未知时间,  默认-1
        config.setMaxWaitMillis(1000l);
        //检查连接是否有效
        config.setTestOnBorrow(false);
        //是否启用后进先出, 默认true
        config.setLifo(true);
        //连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
        config.setBlockWhenExhausted(true);
        //对象空闲多久后逐出, 当空闲时间>该值 且 空闲连接>最大空闲数 时直接逐出,不再根据MinEvictableIdleTimeMillis判断  (默认逐出策略)   
        config.setSoftMinEvictableIdleTimeMillis(1800000);
        //设置的逐出策略类名, 默认DefaultEvictionPolicy(当连接超过最大空闲时间,或连接数超过最大空闲连接数)
        config.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy");
        //每次逐出检查时 逐出的最大数目 如果为负数就是 : 1/abs(n), 默认3
        config.setNumTestsPerEvictionRun(3);
        //逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
        config.setTimeBetweenEvictionRunsMillis(-1);
        
        jedisPool = new JedisPool(config, "127.0.0.1", 6379);
        
    }
    
    static {
        // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
        config.setMaxTotal(20); 
        config.setMaxIdle(5); 
        config.setMaxWaitMillis(1000l); 
        config.setTestOnBorrow(false); 
        // slave链接 
        List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); 
        shards.add(new JedisShardInfo("127.0.0.1", 6379, "master")); 

        // 构造池 
        shardedJedisPool = new ShardedJedisPool(config, shards); 
    }
    
    
    public static Jedis getJedis() {
        jedis = jedisPool.getResource();
        return jedis;
    }
    
    public static ShardedJedis getShardedJedis() {
        shardedJedis = shardedJedisPool.getResource();
        return shardedJedis;
    }
}
RedisUtil

相关文章:

  • 2021-07-20
  • 2021-12-24
  • 2022-01-01
  • 2021-07-13
  • 2021-05-15
  • 2021-07-13
  • 2022-12-23
猜你喜欢
  • 2021-06-26
  • 2022-01-17
  • 2022-02-12
  • 2022-01-27
  • 2021-06-06
  • 2021-05-05
  • 2022-12-23
相关资源
相似解决方案