在我正在处理的一个项目中,我从控制器中的外部API请求数据,然后将数据显示在视图中。我最近开始遇到由于速率限制而抛出的异常,这是由于对API的过度调用造成的。为了解决这个问题,我假设我需要实现某种缓存系统。我一直在研究rails中的页面缓存,但它似乎没有解决我的问题,因为我没有使用我自己的数据库中的模型。所以,我想知道是否有一种简单的方法可以定时缓存页面,这样就可以通过API频繁地请求新数据。
希望这是有意义的--我是Ruby on Rails的新手,而且我以前从未使用过任何类型的缓存系统。
使用PHP,我将在memcached中持久化一个数组,作为以下过程的一部分:
从memcached获取数组
对数组中的第一项执行操作
基于操作结果的更新数组
在memcached中设置数组
数组以字符串的形式包含URL。
memcached set操作对于大型数组大小失败。最近,对于包含78175个URL的数组,它失败了。
我从memcached获得的错误有些泛泛:
Result code: 10
Result message: SERVER ERROR
对于这个特定的错误,没有多大用处。
我使用的代码非常简单:
public function save() {
我正在使用PHP和Memcache。我希望多个键指向相同的数据。
$datawallright = $memcache->get('wads'.$wall->getIdwall());
这就是我检索数据的方式。如果没有数据,我会执行一些MySql查询,这需要一些时间。大多数时候,关键是指向唯一的数据。问题是,有时我希望更多的键指向相同的数据。
$memcache->set('wads'.$wall->getIdwall(), $datawallright, false, 3600) or die ("Failed to save
我将一个大小为7-10MB的对象存储在Memcached中,就在放置对象之后,尝试检索它。在那种情况下我会错过缓存。知道为什么吗?此解决方案适用于较小的对象大小。
背景信息:
我使用Memcached存储一组大小约为7-10 MB的大型对象。由于某些原因,我不可能将这个对象分割成多个较小的键。我希望缓存是多余的和温暖的,因此,我使用了一个稍微复杂的缓存放置过程,如下所述:
keySet = makeRedundantKeys(key) // Appends a unique num to the key
putAsync(keys in keyset)
while(!timeout || co