gpt4 book ai didi

php - PHP使用Redis存储Session需要多少个socket?

转载 作者:可可西里 更新时间:2023-11-01 11:23:02 25 4
gpt4 key购买 nike

假设我使用 Redis 在 PHP 中存储我的 session (以前我使用 mySql 5.0),并且 Redis 服务器与 PHP 应用程序服务器位于不同的服务器中。因此,当有请求进入时, session 将从 Redis 创建/加载,它将从 PHP 应用服务器获取一个套接字。如果有100个并发请求,Redis会有100个套接字吗?还是只有一个?

最佳答案

Redis 没有任何内置连接池,我认为当前的 PHP Redis 绑定(bind)不提供类似的功能,因此默认情况下每个 PHP 线程都会打开一个套接字/连接。因此,如果您的 Web 服务器 (Apache/Nginx/IIS) 尝试使用 100 个 PHP 线程为这 100 个并发请求提供服务,那么将有 100 个到 Redis 的连接。

如果服务器被配置为限制 PHP 线程的数量(我认为更常见),那么这 100 个并发请求将由可能 5 个 PHP 线程提供服务(每个线程处理约 20 个请求,一个接一个)这意味着在任何时候都会有 5 个打开的 Redis 连接。如果它们不是持久连接,那么你将有 100 个到 Redis 的连接和 100 个断开连接,在任何给定时刻只有 5 个打开。如果连接是持久的,那么您将只打开 5 个连接,只有在父 PHP 线程终止时才关闭。

关于php - PHP使用Redis存储Session需要多少个socket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7897170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com