为特定场景configurationmemcached

我有一个Web应用程序查询opentsdb服务器(在后端使用Hbase集群)的不同指标的数据点,并使用dygraph JavaScriptgraphics库,我正在绘制这些指标。 由于从opentsdb获取特定指标的所有数据点本身需要将近2秒,所以我绘制近25个指标的应用程序正在变得非常缓慢。

为了减less这种延迟,我正在考虑使用php5的memcached模块caching所有的查询。 但是我对memcached有几个问题。

  1. 有没有什么办法可以configurationmemcache,以在特定的时间间隔之后运行一些命令行查询来在后台更新其caching。

  2. 有什么办法可以configurationmemcache总是回复使用caching的查询,而不是首先更新其caching,因为我的应用程序只是绘制过去一天的数据点。 缺less一些数据点并不重要。

我认为memcached的php.net手册涵盖了您的需求。 但请记住,您不能像使用select命令在数据库中那样获取存储在memcache的logging。

  1. Memcahe是一个在后台运行的服务,你可以使用php的memcache模块连接到它。 您存储在您的memcache中的任何logging都有一个expire标志,它会让您的memcache服务器知道何时删除您的logging。 看看这个 。

  2. 它应该在您的php代码中,您可以将所有logging添加到memcache服务器中,并将其过期时间设置为一天。 内存caching中的所有logging都由一个密钥区分。 现在,在您的PHP代码中,不是向数据库发送请求,而是首先通过发送数据密钥来检查memcache是​​否存储您的logging,或者您的数据是否由于过期而被删除。 如果logging已经过期,现在是创build一个查询来从数据库中select数据并再次将其存储在memcache服务器中的时候了。