在项目中需要用到Redis数据库,这里记录下Jedis的使用。
定义一个RedisUtil
类。
public class RedisUtil{
static JedisPool pool;
}
1.连接池
为减少创建和销毁连接的成本,一般都会用连接池管理连接,连接池的创建如下:
/**
* 获取jedis连接池
*/
static JedisPool getPool() {
if (pool == null) {
//创建jedis连接池配置
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(100); //最大连接数
config.setMaxIdle(20); //最大空闲
config.setMinIdle(20); //最小空闲
config.setBlockWhenExhausted(true); //忙碌时是否等待
config.setMaxWaitMillis(500); //忙碌时等待时长 毫秒
//创建redis连接池
pool = new JedisPool(config, "192.168.1.21", 6379);
}
return pool;
}
2.从连接池中获取连接
/**
* 获取jedis连接
*/
static Jedis getConn() {
return getPool().getResource();
}
3.封装get,set方法
public static String get(String vin) {
Jedis jedis = getConn();
String r = jedis.get(vin);
jedis.close();
return r;
}
public static String set(String vin, String value) {
Jedis jedis = getConn();
String r = jedis.set(vin, value);
jedis.close();
return r;
}
4. 批量读写mset,mget
Jedis jedis = RedisUtil.getConn();
//mset的参数按key1,value1,key2,value2...的顺序
jedis.mset("foo", "bar", "hi", "jude", "jack", "rose", "peter", "pan");
List<String> r1 = jedis.mget("foo", "hi", "jack", "peter");
for (String s : r1) {
System.out.println(s);
}
输出:
bar
jude
rose
pan
5. 使用hashSet
Jedis jedis = RedisUtil.getConn();
//默认使用db0,可使用`jedis.select(n);`(n为0-15范围内的整数)来选择要操作的数据库。
jedis.select(4);
jedis.hset("k1","ping","pong");
jedis.hset("k1","foo","bar");
jedis.hset("k1","hey","jude");
jedis.hset("k2","ping","pong2");
jedis.hset("k2","foo","bar2");
jedis.hset("k2","hey","jude2");
System.out.println(jedis.hget("k1","ping")); // pong
System.out.println(jedis.hget("k2","ping")); // pong2
暂时用到这些,后续再追加…