目录
- 概述
- 联通测试
- Jedis 主从复制
- Jedis 连接池
- 连接池常用参数
- 附录
概述
jedis 是 java redis 的简写,目的是通过 java 程序进行 redis 相关操作,类似于 JDBC 没有必要进行深入的研究,目前已经有比较好的 Spring 与 Redis 的整合方案。
如果想要使用此中间件,只需要向项目中引入以下依赖即可
1 2 3 4 5
| <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.1.0</version> </dependency>
|
联通测试
引入依赖之后,仅需要通过如下步骤即可测试 Redis 的联通性,查看项目是否使用 Jedis 成功
1 2 3 4 5 6 7 8 9
| public class TestRedis { public static void main(String[] args) { String address = "127.0.0.1"; String port = "6379"; Jedis jedis = new Jedis(address, Integer.parseInt(port)); System.out.println(jedis.ping()); } }
|
Jedis 主从复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import redis.clients.jedis.Jedis;
public class TestMS { public static void main(String[] args) { Jedis jedis_M = new Jedis("127.0.0.1", 6379); Jedis jedis_S = new Jedis("127.0.0.1", 6380);
jedis_S.slaveof("127.0.0.1", 6379);
jedis_M.set("class", "1122V2");
String result = jedis_S.get("class"); System.out.println(result); } }
|
Jedis 连接池
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| class JedisPollUtils { private static volatile JedisPool jedisPool = null;
private JedisPollUtils() { }
public static JedisPool getJedisPoolInstance() { if (jedisPool == null) { synchronized (JedisPollUtils.class) { if (null == jedisPool) { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(2); jedisPoolConfig.setMaxIdle(32); jedisPoolConfig.setMaxWaitMillis(100 * 1000); jedisPoolConfig.setTestOnBorrow(true); jedisPool = new JedisPool(jedisPoolConfig, "127.0.0.1", 6379); } } } return jedisPool; }
public static void release(Jedis jedis) { if (null != jedis) { jedis.close(); } } }
|
连接池常用参数
参数 | 含义 |
---|
MaxTotal | 控制一个 pool 可分配多少个 jedis 实例,通过 pool.getResource()来获取;如果赋值为-1,则表示不限制; |
maxIdle | 控制一个 pool 最多有多少个状态为 idle(空闲)的 jedis 实例 |
maxWait | 表示当 borrow 一个 jedis 实例时,最大的等待时间,如果超过等待时间,则直接抛 JedisConnectionException |
testOnBorrow | 获得一个 jedis 实例的时候是否检查连接可用性(ping());如果为 true,则得到的 jedis 实例均是可用的 |
testOnReturn | return 一个 jedis 实例给 pool 时,是否检查连接可用性(ping()) |
附录
JedisAPI 整理