php - 缓存数据与写入内存表

标签 php session caching hash performance

使用这三种方式之一实现快速散列/ 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/

相关文章:

caching - 如何在 Linux 客户端禁用 CIFS (samba) 缓存

php - 使用 Javascript 更改操作属性不会发送到 php

php - 将带有字符 %20 的 url 作为 ajax 变量传递

PHP shell_exec 等待脚本完成?

c# - 使用 Redis 缓存作为 session 存储 asp.net core

ios - NSXML解析器缓存

php - 想知道图像被拉到哪里

java - 代码在本地主机上工作正常但在远程服务器上不工作

ios - Spotify SDK 缺少 token 刷新服务?

apache - HTTPS 图片不缓存