我想知道 memcached 中的短超时(60 秒)是否会对性能产生任何负面影响,VS 更长的超时,但忽略返回的值(如果它是在 60 秒前存储的)。
有很多缓存未命中(如果该项目已被删除)会对性能产生影响吗?
快速说明:如果缓存未命中,我不会重新设置值,只是检查它是否存在
示例场景:
考虑在您的网站上,您希望防止双重操作的情况(例如,在您的网站上单击两次付款按钮,这会注册两次付款。在我们的案例中,我们不处理付款)。
一个简单的技巧是将用户操作在 Memcached 中保留一小段时间——当然有更好的方法可以做到这一点——并检查在最后几秒钟内是否进行了相同的调用。
现在,您可以将缓存设置为短时间,然后检查缓存中是否存在用户的相同操作。或者,将last_user_action缓存设置很长一段时间,以及操作的时间,应用程序可以根据预期的时间段检查时间。
短期的警告是有很多缓存删除(过期键)和很多缓存未命中(因为项目已被删除)。更长的时间只会使用更多的内存。
所以,我想知道大量删除(过期元素)和缓存未命中的开销。