在Java中使用Redis。可以使用Redis官方提供的Jedis。和Apache提供的common-pool2。
因为Jedis对象不是线程安全的。所以使用common-pool,对象池来管理Jedis对象。
分别对应两个jar包。
maven坐标为:
1 2 3 4 5 6 7 8 9 10
| <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.9.0</version> </dependency>
|
简单使用
Jedis的常用的方法名和参数名,基本都和Redis的命令和参数一样。
只演示一下Jedis对象创建、Jedis连接池和事务
创建Jedis对象
Jedis类有多个重载构造器
常用的是Jedis(String host int port)
,参数分别为主机号和端口号。
Jedis连接池
创建一个工具类JedisPool,在类中有两个静态方法open、close和一个静态变量JedisPool。
open用来从连接池中获取一个Jedis对象,close负责关闭该链接。
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
| public class RedisUtils {
public static JedisPool jedisPool = null;
public static JedisPool open(String host, int port) { if(jedisPool == null) { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(10); jedisPoolConfig.setMaxIdle(2); jedisPoolConfig.setTestOnBorrow(true); jedisPool = new JedisPool(jedisPoolConfig, host, port);
} return jedisPool; } public static void close() { if(jedisPool != null) { jedisPool.close(); } }
}
|
然后使Jedis的PoolgetResource()
方法来获取Jedis对象,并用try/catch语句块。在finally中关闭jedis对象。等于是将对象放回实例池中,并不是销毁该对象。
事务
Jedis中有事务Transcation类。
使用Jedis.multi()
返回一个事务对象,通过该对象添加操作命令。