Memcached面试题及答案 - [ IT基础技术面试题及答案 ]

Memcached是一个通用的免费开源,高性能的分布式内存对象缓存系统。 它用于通过在RAM中缓存数据和对象来加速数据库驱动的网站。通过阅读下面Memcached面试题和答案,有助于让您在面试过程中应付自如,也可作为测评或复习巩固Memcached知识。

1. Memcached是什么?

Memcached是一个通用的免费开源,高性能的分布式内存对象缓存系统。 它用于通过在RAM中缓存数据和对象来加速数据库驱动的网站。 简单来说,可以说Memcached是一个临时存储数据的组件,时间为1小时/ 6小时/ 12小时/ 1天等,可以将这个组件与应用程序集成来提高它们的性能。详细答案>>

2. Memcached使用哪种语言是什么编写?作者是谁?

Memcached是用“C语言”编写的。 它由Brad Fitzpatrick在2003年开发。最初,它是为LiveJournal开发的,但现在它被维基百科,Twitter,Facebook,Flickr,Netlog,YouTube等使用。

详细答案>>

3. Memcached是如何工作的?

请参阅以下步骤以了解Memcached的工作原理: Memcached首先尝试获取用户的详细信息,然后浏览器将请求发送给应用程序。应用程序为特定用户调用Memcached。如果在Memcached中找到结果,则从Memcached返回结果。如果在Memcached中找不到结果,则应用程序将请求发送到数据库并将结果保存在Memcached中。每个Memcached都有一个唯一的键。使用键获取/设置数据工作。也可以删除一个或多个键。还可以将标签分配给一个/多个键。详细答案>>

4. Memcached的第一个版本是什么时候推出的?

Memcached的第一个版本于2003年5月22日推出。

详细答案>>

5. Memcached的用途是什么?哪些大型网站中使用它?

Memcached用于提高动态数据库驱动网站的速度。 它将数据和对象缓存在RAM中以减少执行时间。 它通常用于: 在社交网站中进行配置文件缓存。用于内容聚合,即HTML /页面缓存。在电子商务网站中进行会话和HTML缓存。在基于位置的数据库查询扩展服务中。用于会话缓存的游戏和娱乐服务。它还可用于跟踪广告定位的Cookie/个人资料。详细答案>>

6. Memcached的最佳用法是什么?

Memcached的最佳用法: 它易于在Windows和UNIX操作系统中安装。它为所有主要语言提供API集成,如Java,PHP,C/C++,Python,Ruby,Perl等。它通过缓存增强了Web应用程序的性能。它减轻了数据库服务器的负担。它可以帮助您删除一个或多个值。它可以帮助您更新键的值。详细答案>>

7. Memcached的缺点/局限是什么?

Memcached的限制或缺点列表: Memcached无法持久且永久地存储数据。Memcached不是数据库,它只存储临时数据。Memcached无法缓存大对象。Memcached不是特定于应用程序的。Memcached不具有容错能力或高可用性。详细答案>>

8. 缓存中哪些条件不能保留存储的信息?

缓存无法在以下条件中保留存储的信息:

  • 当缓存的已分配内存耗尽时。
  • 删除缓存中的项目时。
  • 当缓存中的单个项目过期时。
详细答案>>

9. Memcache和Memcached有什么区别?

Memcache和Memcached有以下区别: 表: Memcache Memcached Memcache模块为Memcached提供了方便的过程和面向对象的接口。 Memcached是一个高性能的分布式内存对象缓存系统。 Memcache是一个扩展,通过方便的面向对象(OOP)和过程接口工作。 Memcached是一个扩展,它使用libMemcached库来提供与Memcached服务器通信的API。 Memcache模块提供会话处理程序(Memcache)。 Memcach...详细答案>>

10. 可以在多个项目之间共享一个Memcache实例吗?

可以。我们可以在多个项目之间共享一个Memcache实例,因为作为内存存储空间,Memcache可以在一个或多个服务器上运行。 在Memcache中,还可以将客户端配置为与特定的一组实例通信。 我们还可以在同一主机上运行两个不同的Memcache进程,这些进程是完全独立的,没有任何干扰。 如果对数据进行分区,则必须知道从哪个实例获取数据或将数据放入。详细答案>>

11. SAP HANA和Memcached之间的区别?

SAP HANA是内存中的RDBMS,主要用于加速SAP应用程序,而Memcached是一个键/值缓存系统,用于访问RDBMS和NoSQL数据库。

详细答案>>

12. 如何使用telnet命令连接Memcached服务器?

通过使用telnet hostname portNumber命令,可以使用telnet命令连接Memcached服务器。 语法 $telnet HOST PORT 示例 给出的示例显示了如何连接到Memcached服务器并执行简单的set和get命令。 假设Memcached的服务器在主机127.0.0.1和端口11211上运行。 $telnet 127.0.0.1 11211 Trying 127.0.0.1... Connected to 127.0.0.1. Escape chara...详细答案>>

13. 如何获得Memcached 中键对应的值?

通过使用get命令,您可以获取键对应的值。 语法 get key 在下面的示例中,我们使用kaops作为键并在其中存储Memcached,过期时间为900秒。 import net.spy.memcached.MemcachedClient; public class MemcachedJava { public static void main(String[] args) { // Connecting to Memcached server on localhost...详细答案>>

14. 如何设置 Memcached 键的值?

通过使用set命令,您可以设置密钥的值。 语法 set key flags exptime bytes [noreply] value 在给定的示例中,我们使用kaops作为键,并在其中设置值为:Memcached,过期时间为900秒。 set kaops 0 900 9 memcached STORED get kaops VALUE kaops 0 9 Memcached END 详细答案>>

15. 如何在memcached键中增加值?

通过使用add命令,您可以在键中添加值。 语法 add key flags exptime bytes [noreply] value 示例 在给定的示例中,使用key作为键,并在其中添加值为Memcached的900秒到期时间。 add key 0 900 9 memcached STORED get key VALUE key 0 9 Memcached END 详细答案>>

16. 如何更换Memcached中键的值?

通过使用replace命令,可以替换键的值。 语法 add key 0 900 9 memcached STORED get key VALUE key 0 9 memcached END replace key 0 900 5 redis get key VALUE key 0 5 redis END 详细答案>>

17. 在Memcached中如何附加键的值?

通过使用append命令,可以附加键的值。 语法 append key flags exptime bytes [noreply] value 在给定的示例中,尝试在不存在的键中添加一些数据。 因此,Memcached返回NOT_STORED。 在此之后,我们设置一个键并将数据附加到其中。 append kaops 0 900 5 redis NOT_STORED set kaops 0 900 9 memcached STORED get kaops VALUE ka...详细答案>>

18. 如何预先设定Memcached键的值?

通过使用prepend命令,可以预先添加键的值。 语法 prepend key flags exptime bytes [noreply] value 在下面的示例中,尝试在不存在的键中添加一些数据。 因此,Memcached返回NOT_STORED。 在此之后,设置一个键并将数据添加到其中。 prepend kaops 0 900 5 redis NOT_STORED set kaops 0 900 9 memcached STORED get kaops VALUE...详细答案>>

19. 如何删除Memcached 中的键?

通过使用delete命令,可以Memcached 中的键。 语法 delete key [noreply] 在给定的示例中,我们使用kaops作为键,并在其中添加值为Memcached的900秒到期时间。 在此之后,它删除存储的键。 set kaops 0 900 9 memcached STORED get kaops VALUE kaops 0 9 memcached END delete kaops DELETED get kaops END dele...详细答案>>

20. 如何显示Memcached的统计数据?

通过使用stats命令,可以显示统计信息。 语法 stats 示例: stats STAT pid 1162 STAT uptime 5022 STAT time 1415208270 STAT version 1.4.14 STAT libevent 2.0.19-stable STAT pointer_size 64 STAT rusage_user 0.096006 STAT rusage_system 0.152009 STAT curr_connectio...详细答案>>

21. 如何获得/查询Memcached版本信息?

通过使用version命令,可以获取Memcached的版本信息。

详细答案>>

22. 如何关闭Memcached连接?

通过使用quit命令,可以关闭Memcached连接。

详细答案>>

23. 当数据发生变化时,如何更新Memcached?

数据更改时,有两种方法可以更新Memchached: 通过主动清除缓存:可以通过在插入或更新时清除缓存来更新Memcached。通过重置缓存:它与第一种方法略有相似,但它不会删除键并等待下一次请求数据刷新缓存,它会在插入或更新后重置值。详细答案>>

24. 什么是Dogpile效应? 如何防止这种影响?

如果缓存过期,并且网站被客户端同时发出多个请求,则此效果称为Dogpile效果。
使用信号量锁可以防止这种影响。 在此系统中,当值到期时,第一个进程获取锁并开始生成新值。

详细答案>>

25. 当服务器意外关闭时,Memcached中存储的数据会发生什么变化?

在Memcached中,数据不会永久存储。 它不是持久数据,因此,如果关闭或重新启动服务器,将删除存储在Memcached中的所有数据。

详细答案>>

26. 如果有多个Memcache服务器,其中一个Memcache服务器发生故障并且有数据,它是否会尝试从那个故障服务器获取关键数据?

故障服务器中的数据不会被删除,但是可以为多个节点配置自动故障。 可以在任何套接字或Memcached服务器级错误期间触发故障转移,而不是在正常的客户端错误(如添加现有键等)期间触发。详细答案>>

27. 如何最大限度地减少Memcached服务器中断?

以下是最小化Memcached服务器中断的方法: 当一个实例发生故障时,其中一些实例出现故障,当客户端重新加载丢失的数据时,这种情况会给数据库服务器带来更大的负载。 为了避免这种情况,应该编写代码以最小化缓存标记,并且它将产生相对较小的影响。可以使用丢失的计算机IP地址在新计算机上调出Memcached实例。该代码是另一种最小化服务器中断的选项,因为它使您可以自由地以最少的工作更改Memcached服务器列表。设置超时值是一些Memcached客户端为Memcached服务器中断实现的另一个选项。 当...详细答案>>
注: 此试题仅作为相关知识水平测试,不能作为权威试题和答案。非商业转载注明原文链接即可;商业转载需本站授权同意。