Codeigniter数据库会话驱动程序/会话驱动程序中的会话问题

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

我有一个使用Codeigniter 3.1.11和jQuery ajax构建的聊天应用程序。我正在使用数据库会话驱动程序。本地主机中没有问题,但是当我将其移至实时服务器并且随着访问用户数量的增加时,会话存在很多问题。问题之一是它为单个用户创建多个会话ID(这是在浏览器中打开页面时的意思,它在ci_sessions表中最少创建约4至6个ID,有时甚至更多)。有时我会丢失会话值(例如在每个ajax调用中都将其重置)。而且我在日志文件中也收到以下错误:

ERROR - 2020-02-04 13:41:30 --> Query error: Deadlock found when trying to get lock; try restarting transaction - Invalid query: UPDATE `ci_sessions` SET `timestamp` = 1580823690 WHERE `id` = 'e0b75ac252a680d3ec6ad1b8589f4836b89f8bf5'

我的实时服务器信息:

Apache版本:2.4.41,PHP版本:7.3.13,MySQL版本:10.3.18-MariaDB,操作系统:linux

[发布时,我的ci_sessions表包含478个唯一ip地址和5105个条目。请任何人帮助解决此问题。

php session codeigniter-3 database-deadlocks php-7.3
1个回答
0
投票

根据您的有限信息,我只能建议您更新以下内容

config['sess_match_ip'] = true;

这应该为同一用户解决您的多个会话。

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