RedisTemplate中的execute方法如何使用

2年前 (2022) 程序员胖胖胖虎阿
297 0 0

theme: vue-pro

这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

温故才能知新(复习一下)

上篇文章我们学习了RedisTemplate中的execute的概念,理解了execute的概念。

execute提供了基础的操作Redis方法的实现,为其他特定数据类型操作方法提供了基础方法的实现。

今天我们是要来学习一下RedisTemplate中的execute方法具体使用方法,并且提供出相应的代码实现,一起来学习吧。

如何正确使用execute方法

execute(RedisCallback\

action)

public <T> T execute(RedisCallback<T> action)

此方法需要传入的参数时一个RedisCallback对象实例,实际是一个Redis连接成功的回调方法,一般都是以下方式去调用的。

通过Redis的链接来操作Redis数据库中的键值。

代码使用:

redisTemplate.execute((connection) -> { return connection.del(new byte[][]{"redis-key"}); });

execute(RedisCallback\

action, boolean exposeConnection)

public <T> T execute(RedisCallback<T> action, boolean exposeConnection)

大家可以看得出来,这个方法同上面的方法,只是多了一个exposeConnection的布尔类型参数,那么这个参数是干什么的?有什么作用呢?

exposeConnection参数的含义是是否要暴露connection,如果为true,那么就可以在回调函数中使用当前连接connection对象。

代码使用:

redisTemplate.execute((connection) -> { return connection.del(new byte[][]{"redis-key"}); }, true);

execute(RedisCallback\

action, boolean exposeConnection, boolean pipeline)

public <T> T execute(RedisCallback<T> action, boolean exposeConnection, boolean pipeline)

如果你看了这几个方法的源码,你就会发现,前面三个execute方法的核心其实就是这个,因为前两个方法依然会调用这个方法,只不过多了两个参数值而已。

exposeConnection我们已经说过了,pipeline的含义则是是否开启管道,管道是可以承载一定数据的链路。

代码使用:

redisTemplate.execute((connection) -> { return connection.del(new byte[][]{"redis-key"}); }, true, false);

execute(SessionCallback\

session)

public <T> T execute(SessionCallback<T> session)

这个方法有所不同,因为参数和前三个参数不一样了,之前的回调函数是RedisCallback,这个方法的回调是SessionCallback回调对象。

是可以传入SessionCallback回调对象的方法。

注意

这里要注意一点,虽然execute方法是底层方法,但是并不代表一定要用,我们在日常开发中其实最好还是使用基于execute方法封装的一些特定数据类型的操作Redis方法,因为execute方法使用起来并没有其他的方法简单,反而更容易出错。

小结

今天学习了RedisTemplate的execute相关的几个重载方法是如何使用的,不知道大家有什么样的心得呢?

版权声明:程序员胖胖胖虎阿 发表于 2022年11月21日 上午11:00。
转载请注明:RedisTemplate中的execute方法如何使用 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...