我的网站正在使用Memcached。现在需要7Gb的内存,每个页面都会生成一些内容并设置存储整页等等。此外,我有一个非常动态的侧边栏,也存储在Memcached中更新并经常请求。我注意到这个特定的密钥需要很长时间才能获取。例如,获取整页需要1-2毫秒,但获取侧边栏大约需要50毫秒!我在每个页面都做这个请求而我根本不喜欢它,当完整请求需要200-300ms 50ms的memcached get是不可接受的。
是否与此密钥的频繁更新有关?如果是,有什么方法可以解决它吗?也许我应该使用Redis或MySQL?或者可能切换到PHP Memcache d 扩展而不是Memcache会有帮助吗?如果没有,还有什么其他原因会导致这种行为?
UPD:在此密钥上设置的memcache需要疯狂250毫秒!
答案 0 :(得分:1)
我发现了问题,这是我的错。但是,由于我在问题上看到2个星,我会回答让人们知道实际发生了什么。 因此,由于我的代码中的错误,我存储的值非常大(包含3500个项目的数组而不是实际需要的20个),这就是速度大幅降低的原因。在我发现这个之前,我检查了memcache d ,想要切换到它。以下是此问题密钥的时间度量(以毫秒为单位):
memcache get
42.184829711914
memcache set
153.13792228699
memcached get
14.186859130859
memcached set
0.093936920166016
Memcached显示得到更好的结果(但仍然不是0-1ms)和写入效果很好。我已经准备好使用它,但后来检查了另一个简单的密钥,并且使用memcache快速工作:
memcache get
0.17499923706055
memcache set
0.10800361633301
memcached get
6.850004196167
memcached set
0.012874603271484
所以在我的服务器上,memcached在写入时显示出很快的速度但在读取时效果不是很好。好的是,根据值的大小,它不会降低它。也许有一天这些信息对我有用:)