1.打开redis服务端

2.下载需要的jar(或maven)

jar1链接:http://commons.apache.org/proper/commons-pool/download_pool.cgi
jar2链接https://mvnrepository.com/artifact/redis.clients/jedis
3.配置连接池资源
首先看一下源码:

可以看到配置类继承了GenericObjectPoolConfig,这也是为什么要导入commons-pool这个jar
配置参数:
// 服务器ip地址private static String ADDR = "127.0.0.1";// 端口private static int PORT = 6379;// 密码private static String PASSWORD = "";// 连接实例的最大连接数private static int MAX_ACTIVE = 1024;// 连接池中能存在状态为空闲的个数private static int MAX_IDLE = 200;// 等待超时时间,单位毫秒private static int MAX_WAIT = 2000;// 连接超时的时间private static int TIMEOUT = 3000;// 在borrow一个jedis实例时,是否提前进行validate操作,如果为true得到的实例均是可用的private static boolean TEST_ON_BORROW = true;
4.加载配置并创建连接池
// 连接池private static JedisPool jpool = null;/** 初始化连接池*/static {try {JedisPoolConfig config = new JedisPoolConfig();config.setMaxWaitMillis(MAX_WAIT);config.setMaxIdle(MAX_IDLE);config.setMaxTotal(MAX_ACTIVE);config.setTestOnBorrow(TEST_ON_BORROW);jpool = new JedisPool(config, ADDR, PORT, TIMEOUT);} catch (Exception e) {e.printStackTrace();}}
通过饿汉模式单例创建连接池。
5.获取Jedis实例
有了这个实例就可以对redis进行操作了,并且jedis也提供了回收方法。
/** 获取Jedis实例*/public static Jedis getJedis() {if (jpool != null) {return jpool.getResource();} else {return null;}}/** 回收Jedis*/public static void returnJedis(final Jedis jedis) {if (jedis != null) {jpool.returnResource(jedis);}}
6.测试
public class Operation {public static void main(String[] args) {Jedis jedis = Connections.getJedis();jedis.set("java", "测试");System.out.println(jedis.get("java"));Connections.returnJedis(jedis);}}
这样一个简单的demo就成功了。
全部代码:
/**获取连接的类*/import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public class Connections {// 服务器ip地址private static String ADDR = "127.0.0.1";// 端口private static int PORT = 6379;// 密码private static String PASSWORD = "";// 连接实例的最大连接数private static int MAX_ACTIVE = 1024;// 连接池中能存在状态为空闲的个数private static int MAX_IDLE = 200;// 等待超时时间,单位毫秒private static int MAX_WAIT = 2000;// 连接超时的时间private static int TIMEOUT = 3000;// 在borrow一个jedis实例时,是否提前进行validate操作,如果为true得到的实例均是可用的private static boolean TEST_ON_BORROW = true;// 连接池private static JedisPool jpool = null;/** 初始化连接池*/static {try {JedisPoolConfig config = new JedisPoolConfig();config.setMaxWaitMillis(MAX_WAIT);config.setMaxIdle(MAX_IDLE);config.setMaxTotal(MAX_ACTIVE);config.setTestOnBorrow(TEST_ON_BORROW);jpool = new JedisPool(config, ADDR, PORT, TIMEOUT);} catch (Exception e) {e.printStackTrace();}}/** 获取Jedis实例*/public static Jedis getJedis() {if (jpool != null) {return jpool.getResource();} else {return null;}}/** 回收Jedis*/public static void returnJedis(final Jedis jedis) {if (jedis != null) {jpool.returnResource(jedis);}}}/**测试类*/import redis.clients.jedis.Jedis;public class Operation {public static void main(String[] args) {Jedis jedis = Connections.getJedis();jedis.set("java", "测试");System.out.println(jedis.get("java"));Connections.returnJedis(jedis);}}
文章转载自大学生IT学习之家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




