RedisTemplate获取原生Jedis
需求场景
项目中一般用RedisTemplate操作redis,但是某些需求场景只有原生jedis才会满足,比如jedis.hset,它的作用是:如果如果key不存在,则新增key并返回1;如果key存在,但filed不存在,则新增filed并返回1。 而RedisTemplate未提供这样的api。
获取方式
我们可以通过RedisTemplate获取原生Jedis,来满足我们的需求。
RedisConnection conn= null;
try {
conn = RedisConnectionUtils.getConnection(redisTemplate.getConnectionFactory());
Jedis jedis = (Jedis) conn.getNativeConnection();
......
......
//如果key不存在,则新增key并返回1
//如果key存在,但filed不存在,则新增filed并返回1
Long res = jedis.hset(key, monitorData.getEndpoint(), monitorData.getTimestamp() + "");
......
......
}finally {
if(conn != null){
RedisConnectionUtils.releaseConnection(conn, jedisConnectionFactory);
}
}
需要注意的是,在获取到RedisConnection之后,一定要在finally中释放连接,否则会造成连接泄露。
上一篇:
IDEA上Java项目控制台中文乱码
