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