Valkey 与 Redis 中 MULTI 命令的比较

问题描述 投票:0回答:1

我是 valkey/redis 的新手,我对事务中 MULTI 命令的使用有疑问。假设我们有一个与 valkey 具有单个连接的客户端,并且客户端通过该单个连接处理并发请求,那么如果由于请求,如果客户端向 valkey 发送 MULTI 请求,那么该连接将处于“事务模式” ’从现在开始。由于并发请求,如果客户端向 valkey 发送命令,这是否会被视为事务的一部分?这样的场景如何与valkey中的多线程配合(与Redis相比)

我还没有尝试过任何东西,我想先了解其行为

redis valkey
1个回答
0
投票

不同的客户端以不同的方式解决问题,但如果需要事务,通常一个连接只能服务于一个线程,除非客户端采取特殊的预防措施,否则线程会并发竞争连接资源。

一个选项是使用锁定(以性能为代价,因为其他线程必须等待事务完成)。

另一个选择是使用连接池并使用每个连接线程模式(这次以资源为代价 - 有多少活动线程就有多少活动连接)。

第三个选项是进行高级多路复用,例如使用 Redis 的 StackExchange 客户端(在这种情况下,代价是无法执行任何阻塞操作,例如 BLPOP / BRPOP / BRPOPLPUSH)

该主题还高度依赖于如何在特定客户端中实现pipelined以及如何处理数据。

© www.soinside.com 2019 - 2024. All rights reserved.