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项目控制台中文乱码