当前位置: 首页 > 面试题库 >

具有LRU到期的内存中缓存

壤驷喜
2023-03-14
问题内容

我正在为我的PHP驱动的网站寻找内存缓存。它不是高流量的网站,我只想缓存数据和某些页面的某些部分以提高性能。数据大小从几字节到几kB不等。我目前正在使用xCache,并且没有问题。

切换到内存缓存或Redis更好吗?有没有更好的选择?


问题答案:

如果您没有任何明显的问题,为什么要立即切换?内存缓存或Redis可能更好,但是如果您现在不需要它们,最好保留它们。只要您的缓存策略是正确的,并且缓存接口是抽象的,那么当您实际感觉需要切换到可伸缩缓存时,应该可以在以后添加它们。

另外,PHP中的xCache是​​操作编码器缓存。Memcache和redis或多或少都像是proc键值对。如果您的站点在2台或3台服务器上运行,则需要上下文共享,而不仅仅是共享单个实例,这些缓存会有所帮助。

--S



 类似资料:
  • 大多数LRU缓存教程强调组合使用双向链表和字典。字典保存该值和对链表上相应节点的引用。 当我们执行删除操作时,我们从字典中的链表中查找节点,我们必须将其删除。 现在这里是它变得奇怪的地方。大多数教程认为,我们需要前面的节点才能从链表中删除当前节点。这样做是为了获得O(1)时间。 但是,这里有一种方法可以在O(1)时间内从单链接列表中删除节点。我们将当前节点的值设置为下一个节点,然后杀死下一个节点。

  • 问题内容: 这是工作面试中经常提到的一个问题。这个想法是定义一个数据结构,而不是使用Java在LinkedHashMap中内置的结构。 LRU缓存会删除 最近最少使用的 条目,以插入新的条目。因此,鉴于以下情况: 其中A是最近最少使用的项目,如果要插入F,则需要删除A。 如果我们保留一个HashMap,其中包含按(键,值)的缓存条目以及包含元素的键和使用时间的单独列表,则可以轻松实现这一点。但是,

  • 本文向大家介绍什么是LRU缓存?相关面试题,主要包含被问及什么是LRU缓存?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: LRU(最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高 实现:使用一个链表保存缓存数据,将新数据插入到头部,每当缓存命中时,则将命中的数据移动到链表头部,当链表满的时候,将链表尾部的数据丢弃。

  • 问题内容: 我有多个运行同一进程的线程,它们需要能够互相通知,在接下来的n秒钟内不应进行某些处理,如果可以的话,这不是世界末日。 我的目标是能够将字符串和TTL传递到缓存,并能够以列表的形式获取缓存中的所有字符串。缓存可以存在于内存中,而TTL不会超过20秒。 有人对如何实现这一目标有任何建议吗? 问题答案: 您可以使用以下模块: 库的核心是class,它是一个有序字典,具有用于缓存目的的自动过期

  • 问题内容: 我知道实现起来很简单,但是我想重用已经存在的东西。 我要解决的问题是,我为不同的页面,角色加载了配置(从XML,所以我想缓存它们),因此输入的组合可以增长很多(但99%的增长)。为了处理这一1%,我想在缓存中设置一些最大项目… 直到我在apache commons中找到了org.apache.commons.collections.map.LRUMap,它看起来还不错,但还想检查一下其

  • 问题内容: 我知道实现起来很简单,但是我想重用已经存在的东西。 我要解决的问题是我为不同的页面,角色加载了配置(从XML,所以我想缓存它们),因此输入的组合可以增长很多(但99%的增长)。为了处理这个1%,我想在缓存中设置一些最大项目… 直到我在apache commons中找到了org.apache.commons.collections.map.LRUMap,它看起来还不错,但还想检查其他内容