【发布时间】:2012-11-12 16:57:25
【问题描述】:
我想知道将 SQLite 用作主会话存储或至少用作主 memcached 的备份会话存储是一种好习惯吗?
你能告诉我一些优点和缺点吗?
(我正在构建一个用于教育目的的 MVC 框架,并且正在考虑不同的可能性和实现方式)
【问题讨论】:
标签: php sqlite model-view-controller memcached session-cookies
我想知道将 SQLite 用作主会话存储或至少用作主 memcached 的备份会话存储是一种好习惯吗?
你能告诉我一些优点和缺点吗?
(我正在构建一个用于教育目的的 MVC 框架,并且正在考虑不同的可能性和实现方式)
【问题讨论】:
标签: php sqlite model-view-controller memcached session-cookies
SQLite 专业人士
SQLite 缺点
更好的解决方案 - 内存缓存
由于会话通常在每个页面点击时被访问,因此使用尽可能快的机制而不需要数据库层的所有开销同时仍然允许它在分布式系统中工作(例如多个 PHP 服务器)是有意义的。
使用经过 PHP 良好测试的 Memcache,您甚至可以通过修改一些 php.ini 设置或更细粒度的控制(或使用其他软件,如 redis)来集成 memcache 会话,您可以创建自己的自定义会话处理程序.
这有不同的优点和缺点
Memcache 专业人士
Memcache 缺点
虽然您应该使用其他软件来监控这两种情况,或者编写一个 cron 作业脚本来检查 memcache 服务是否仍在运行 - 但那是另一天的另一个问题和答案。关键是,这些缺点可以在一定程度上减少。
进一步阅读所涵盖的主题
【讨论】:
基于文件的会话是个坏主意,因为如果您不关闭对会话的写访问( session_write_close(); ),文件将被锁定。但是当你不得不使用 sqlite 来避免这个问题时,你为什么要限制自己/theServer?
所以 sqlite专业版: - 易于使用(更改 php.ini 配置):
session.save_handler = sqlite
session.save_path = "/path/sessions.db"
sqlite 配置
我想使用 apc,但我需要实施,我担心它可能会导致安全问题......
【讨论】:
blocking 文件问题。
PHP 的基于文件的会话非常好而且速度很快,使用 SQLite 存储会话只会增加会话管理的开销。
【讨论】: