从RedisTemplate中获得Jedis实例,可以使用如下方式:
1. 直接从RedisTemplate获取RedisConnectionFactory
RedisConnectionFactory factory = redisTemplate.getConnectionFactory();
2. 从RedisConnectionFactory获取JedisConnection对象
RedisConnection connection = factory.getConnection();
3. 将JedisConnection对象转换为Jedis实例
Jedis jedis = ((JedisConnection) connection).getJedis();
所以整体代码如下:
@Autowired private RedisTemplate<String, String> redisTemplate; public void getJedis() { RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); RedisConnection connection = factory.getConnection(); Jedis jedis = ((JedisConnection) connection).getJedis(); // 使用jedis操作Redis }
此方式实际上是从RedisTemplate底层的RedisConnectionFactory中获取Redis连接,
然后强制类型转换为JedisConnection, 获取该连接关联的Jedis实例。
需要注意的是,使用此方法获得的Jedis实例是RedisTemplate维护的短连接,使用完后必须关闭,否则会导致RedisTemplate短连接泄露,最终抛出“Failed to borrow a connection from the pool”异常。
所以使用完Jedis实例后,必须调用如下方法关闭连接:
jedis.close(); connection.close();
常见的使用场景是,当RedisTemplate不支持的某些Redis命令时,需要获取Jedis实例来直接执行。
但不推荐整体架构使用Jedis, 而是继续使用RedisTemplate进行操作,它是Spring推荐的操作Redis的模板工具类。
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录