共计 1400 个字符,预计需要花费 4 分钟才能阅读完成。
自动写代码机器人,免费开通
丸趣 TV 小编给大家分享一下 Redis 事务和 pipleline 是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
1、reidis 事务
Redis 事务可以一次执行多个命令,并且带有以下三个重要的保证:
批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
一个事务从开始到执行会经历以下三个阶段:
开始事务。命令入队。执行事务。
MULTI 开始一个事务,然后将多个命令入队到事务中,最后由 EXEC 命令触发事务,一并执行事务中的所有命令:
1、事务执行
2、watch
监视一个 (或多个) key,如果在事务执行之前这个 (或这些) key 被其他命令所改动,那么事务将被打断。
3、discard
取消事务,放弃执行事务块内的所有命令。
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 网 – 提供最优质的资源集合!
正文完