我是应用程序开发的新手。我目前正在开发一个应用程序,我想知道你对我作为一个新手所面临的问题的宝贵意见。
说到缓存,我应该在缓存中添加应用程序的哪些部分?让我举个例子说明我在做什么:
我正在为我的用户开发一个图片共享应用程序,我已经创建了一个缓存机制来缓存每个用户的数据,他的专辑和他的照片。我目前每页有1个查询(仅在它尚未存储在缓存中的情况下),例如:
if ( !$ItemNotInCache )
{
$MyData = $DB->Query('blah');
Cache::CacheIt($MyData);
}
这是关于我得到的每一个结果,我每次用户请求页面时都试图不调用太多查询,这是否有效?问题是,你可以理解我必须构建这个巨大的机制来操纵数组中的所有这些数据等。
当用户从DB中删除图像时,我也必须从其相册的缓存数据中删除索引。
当用户将图像添加到数据库时,我使用array_merge将此项目插入其缓存数据,依此类推。
我的一位朋友告诉我,我不应该滥用缓存,因为我的数据是动态的,它会经常变化,他还告诉我这就是MySQL的原因。我的问题是我应该以这种方式使用缓存还是不使用缓存?您可以理解,数据是动态的,应该经常刷新。这有效还是我应该坚持使用MySQL查询?
答案 0 :(得分:0)
我认为你所做的一切都很好。从高速缓存中检索几乎在所有情况下使用较少的资源,而不是每次都进行查询。
但是,我不会尝试“合并”添加的图像,只需再次调用数据库。只需在修改相册时增加缓存。我不认为修改相册时编辑缓存是正确的方法。数据库擅长存储和构建数据,因此很容易检索。为什么要自己建造?