使用这三种方式之一实现快速散列/ session 存储的最佳方式是什么?
方式一: 在 MySQL 中创建一个内存表,用于存储创建条目时的哈希值和时间戳。 MySQL 事件会自动删除所有早于 20 分钟的条目。这应该非常快,因为所有数据都存储在内存中,但连接到数据库服务器的开销可能会破坏这种优势。
方式二: 我创建了一个以散列作为文件名的空文件,并创建了一个自动删除所有超过 20 分钟的文件的 cronjob。由于 HDD 上的所有读取操作,这可能会变慢。
方式三: 由于这将与 PHP 相关并且我们使用 Zend Framework 我可以使用 Zend_Cache 并存储生存时间为 20 分钟的散列。
我不想为此使用 Memcached 或 APC,因为我认为这对于一些小的哈希来说是一个很大的开销。
你有没有遇到过类似的场景?非常感谢您的经验和解决方案。
最佳答案
如果性能是个问题,我肯定会选择 memcached。所有大型互联网站点都依赖 memcached 来缓存其他服务器密集型任务,甚至 session 存储和锁定机制。
如果您问我,Memcached 是必经之路
关于php - 缓存数据与写入内存表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1544431/