Redis with PHP - 实现数据缓存

dnp*_*age 6 php benchmarking caching redis

我在我的服务器上安装了redis,并为基于PHP的Web应用程序中返回的数据实现了对象缓存.php模型本质上执行一个相当复杂的查询并返回详细的数据数组.我测试了缓存,发现一切都按预期工作.我首先检查密钥是否存在于redis中.如果是,则redis返回数据,模型反序列化并返回先前缓存的数据.如果缓存已过期,模型将执行sql查询,返回数据并在redis中设置键和序列化值.

所以这是我的问题.

  1. 我不确定如何真正对此进行基准测试,因为它基于浏览器.有哪些工具可以让我得到一个合理的基准来比较缓存而不是缓存.我想的也许是一个通过curl调用api 1000次的php脚本.

  2. 我在redis中实现了这个,因为我曾经读过使用redis进行缓存可以跨多个会话或访问该站点的ip地址工作.例如,如果多个ip地址/用户每小时访问api 1000次,我假设这种方法将减少mysql服务器上的负载,让redis做返回缓存数据的工作.任何人都可以对此有所了解吗?我的假设是否有效?

欢迎所有评论!

谢谢!

戴夫

Did*_*zia 8

要对网站进行基准测试,我会使用像Siege这样的东西而不是编写特定的PHP脚本.

关于Redis的使用,在memcached或Redis等内存存储中缓存内容现在非常普遍.memcached和Redis都适用于此目的,虽然对于纯缓存,memcached可以说更容易设置.每小时1000次仅代表3.6 TPS - 任何数据存储(包括MySQL)都将支持此类流量而不会出现任何问题.现在,将此流量乘以100或1000,并且必须使用缓存层(memcached或Redis)来保护您的数据库.

要使用Redis进行缓存,您可能需要检查EXPIRE命令并查看配置文件中的maxmemory-policy参数.