铭谨 2021-05-19 18:46 采纳率: 0%
浏览 165

负载均衡配置的多个nginx服务器之间,lua_shared_dict内的数据共享吗?

现在要缓存部分数据,可以用redis和lua_shared_dict也就是nginx的共享内存来实现,考虑到单个机器上共享内存开销比redis更小,不过因为我们的nginx服务是多台一起运行的,想问一下,不同nignx服务之间的这个lua_shared_dict通用吗?

  • 写回答

1条回答 默认 最新

  • 三花学编程 2024-03-07 09:19
    关注

    lua_shared_dict 是 OpenResty/Nginx 中 Lua 模块提供的一个功能,用于在 Nginx worker 进程之间共享数据。然而,这个共享是局限在单个 Nginx 实例的 worker 进程之间的。当你有多个 Nginx 服务实例(无论是运行在同一台机器上还是不同的机器上)时,这些实例之间的 lua_shared_dict 是不共享的。

    每个 Nginx 实例都有它自己的内存空间和工作进程,因此 lua_shared_dict 定义的共享内存只能在该实例的 worker 进程之间共享。不同 Nginx 实例之间的 lua_shared_dict 是相互独立的,不会有任何交互。

    如果你需要在多个 Nginx 实例之间共享数据,Redis 是一个很好的选择。Redis 是一个分布式、内存中的键值存储系统,可以在多个实例之间共享数据。虽然 Redis 的内存开销可能略高于 lua_shared_dict,但它提供了更强的数据持久化、备份和故障恢复能力,以及更好的可扩展性。

    根据你的需求,如果数据只需要在单个 Nginx 实例的 worker 进程之间共享,那么 lua_shared_dict 是一个很好的选择。如果需要在多个 Nginx 实例之间共享数据,那么 Redis 可能是更好的选择。

    评论

报告相同问题?

悬赏问题

  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果