【问题标题】:How do Lua scripts block the entire Redis server? [duplicate]Lua 脚本如何阻塞整个 Redis 服务器? [复制]
【发布时间】:2021-04-03 07:27:01
【问题描述】:

假设我有一个 Redis 实例正在运行,我有两个客户端 A 和 B 连接到它。我使用 Java 中的 Redis 模板从其中一个执行只读操作 LUA 脚本,从另一个执行只读哈希操作。由于 Redis 中的所有操作都是阻塞的,我假设如果先发出 LUA 脚本,则其他客户端必须等到 Lua 脚本操作完成。同理,如果先发出hash操作,lua脚本操作要等到hash操作完成。这是一个有效的陈述吗?如果 Redis 是单线程的,它如何处理来自多个来源的调用?

【问题讨论】:

标签: java redis spring-data-redis


【解决方案1】:

Redis 有一个内部的偶数循环,每次在主线程上运行一个事件,更多详细信息请参阅:

  1. https://redis.io/topics/internals-rediseventlib
  2. http://nosqlgeek.blogspot.com/2019/10/so-what-exactly-is-event-loop.html

【讨论】:

    猜你喜欢
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多