Redis事务和pipleline是什么

36次阅读
没有评论

共计 1400 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下 Redis 事务和 pipleline 是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

1、reidis 事务

Redis 事务可以一次执行多个命令,并且带有以下三个重要的保证:

批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。

一个事务从开始到执行会经历以下三个阶段:

开始事务。命令入队。执行事务。

MULTI 开始一个事务,然后将多个命令入队到事务中,最后由 EXEC 命令触发事务,一并执行事务中的所有命令:

1、事务执行

Redis 事务和 pipleline 是什么

2、watch

监视一个 (或多个) key,如果在事务执行之前这个 (或这些) key 被其他命令所改动,那么事务将被打断。

Redis 事务和 pipleline 是什么Redis 事务和 pipleline 是什么

3、discard

取消事务,放弃执行事务块内的所有命令。

Redis 事务和 pipleline 是什么

2、jedis 代码 1、配置支持事务

template.setEnableTransactionSupport(true);

2、代码:


redisTemplate.opsForValue().set( aaa , 321);
redisTemplate.watch( aaa 
redisTemplate.multi();
redisTemplate.opsForValue().set( aaa , 123);
redisTemplate.opsForValue().set( bbb , 123);
redisTemplate.exec();

3、piplelinejedis 代码:


Map String, Object map = new HashMap ();
map.put(aaa , 111);
map.put(bbb , 222);
map.put(ccc , 3333);
List list = redisTemplate.executePipelined(new RedisCallback Object () {
 @Override
 public Object doInRedis(RedisConnection redisConnection) throws DataAccessException {redisConnection.openPipeline(); for (Map.Entry String, Object mapEntry : map.entrySet()) {redisConnection.set(redisTemplate.getKeySerializer().serialize(mapEntry.getKey()), redisTemplate.getValueSerializer().serialize(mapEntry.getValue()));
 } return null;
}, redisTemplate.getValueSerializer());
System.out.println(redisUtil.get( aaa));
System.out.println(redisUtil.get( bbb));
System.out.println(redisUtil.get( ccc));

看完了这篇文章,相信你对 Redis 事务和 pipleline 是什么有了一定的了解,想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1400字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)