V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
movq
V2EX  ›  程序员

redis 事务,当 multi 发送给服务器之后,服务器能在 multi 和 exec 之间这段时间内执行来自别的客户端的命令吗?

  •  
  •   movq · 2022-10-05 00:55:04 +08:00 · 1267 次点击
    这是一个创建于 772 天前的主题,其中的信息可能已经有所发展或是发生改变。

    redis 是单线程执行命令的

    multi 发出之后,是只能等着执行这个客户端继续输入命令,此时别的客户端根本无法执行命令

    还是说此时别的客户端可以发来命令并被执行呢?

    我猜可以执行别的客户端的命令

    3 条回复    2022-10-05 09:08:20 +08:00
    CEBBCAT
        1
    CEBBCAT  
       2022-10-05 00:58:48 +08:00
    > Marks the start of a transaction block. Subsequent commands will be queued for atomic execution using EXEC.
    @ https://redis.io/commands/multi/

    > Redis Multi 命令用于标记一个事务块的开始。 事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。
    @ https://www.runoob.com/redis/transactions-multi.html

    老兄你仔细读下。
    voidmnwzp
        2
    voidmnwzp  
       2022-10-05 01:02:40 +08:00 via iPhone
    你自己开多个连接试试不就行了
    ch2
        3
    ch2  
       2022-10-05 09:08:20 +08:00 via iPhone
    你可以 watch 一个 key ,监视是否被修改,放弃事务
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4823 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:57 · PVG 11:57 · LAX 19:57 · JFK 22:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.