易百教程

Memcached面试题和答案(2024年收集更新)

2024年收集更新的Memcached面试题和答案,下面列出了最常见的 Memcached 面试问题和答案。
Memcached 是一个通用的免费开源、高性能、分布式内存对象缓存系统。它用于通过在 RAM 中缓存数据和对象来加速数据库驱动的网站。简单来说,可以说 Memcached 是一个将数据临时存储 1 小时/6 小时/12 小时/1 天等的组件,可以将此组件与应用程序集成以提高其性能。 完整答案
Memcached 是用“C语言”编写的。它由 Brad Fitzpatrick 于 2003 年开发。最初是为 LiveJournal 开发的,但现在被 Wikipedia、Twitter、Facebook、Flickr、Netlog、YouTube 等使用。 完整答案
请参阅以下步骤以了解 Memcached 的工作原理: Memcached 首先尝试获取用户的详细信息,然后浏览器将请求发送到应用程序。应用程序为特定用户调用 Memcached。如果在 Memcached 中找到 Result,则从 Memcached 返回结果。如果在 Memcached 中未找到结果,应用程序将请求发送到数据库并将结果保存在 Memcached 中。每个 Memcached 都有一个唯一的键。获取/设置数据代表密钥工作。还可以删除一个或多个密钥。还可以将标签分配给一个/多... 完整答案
Memcached 的第一个版本于 2003 年 5 月 22 日推出。 完整答案
Memcached 用于提高动态数据库驱动网站的速度。它将数据和对象缓存在 RAM 中以减少执行时间。 Memcached一般用于: 在社交网站中用于配置文件缓存。用于内容聚合,即 HTML/页面缓存。在电子商务网站中进行会话和 HTML 缓存。在用于数据库查询扩展的基于位置的服务中。在用于会话缓存的游戏和娱乐服务中。它还可用于跟踪广告定位的 cookie/配置文件。 完整答案
Memcached的优点: 它易于安装在 Windows 和 UNIX 操作系统中。它为所有主要语言(如 Java、PHP、C/C++、Python、Ruby、Perl 等)提供 API 集成。它通过缓存提高了 Web 应用程序的性能。它减轻了数据库服务器的负担。它有可以删除一个或多个值。它有可以更新键的值。 完整答案
Memcached 的限制或缺点列表: Memcached 不能持久和永久地存储数据。Memcached 不是数据库,它只存储临时数据。Memcached 无法缓存大对象。Memcached 不是特定于应用程序的。Memcached 不是容错或高可用性的。 完整答案
Memcached缓存在以下情况下无法保留存储的信息: 当为缓存分配的内存耗尽时。当缓存中的项目被删除时。当缓存中的单个项目过期时。 完整答案
Memcache 和 Memcached 的区别: Memcache Memcached Memcache 模块为 Memcached 提供了方便的过程和面向对象的接口 Memcached 是一个高性能的分布式内存对象缓存系统 Memcache 是一个扩展,它允许通过方便的面向对象 (OOP) 和过程接口工作 Memcached 是一个扩展,它使用 libMemcached 库提供与 Memcached 服务器通信的 API Memcache 模块提供了一个会话处理程序(M... 完整答案
可以。可以在多个项目之间共享一个 Memcache 实例,因为作为内存存储空间,Memcache 可以在一台或多台服务器上运行。在 Memcache 中,还可以将客户端配置为与一组特定的实例对话。还可以在同一台主机上运行两个不同的 Memcache 进程,完全独立且不受任何干扰。如果对数据进行分区,重要的是要知道从哪个实例中获取或放入数据。 完整答案
SAP HANA 和 Memcached 有以下区别: SAP HANA 是一种内存 RDBMS,主要用于加速 SAP 应用程序,而 Memcached 是一个键/值缓存系统,用于访问 RDBMS 和 NoSQL 数据库。 完整答案
通过使用 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... 完整答案
通过使用get命令,可以获取key的值。 语法: get key 例子在给定的Java示例中,我们使用 yiibai 作为键并将 Memcached 存储在其中,过期时间为 900 秒。 import net.spy.memcached.MemcachedClient; public class MemcachedJava { public static void main(String[] args) { // Connecting to Memcached s... 完整答案
通过使用 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 完整答案
通过使用 replace 命令,可以替换键的值。语法: replace key flags exptime bytes [noreply] value 在给定的示例中,使用key作为键,并在其中添加值 Memcached,过期时间为 900 秒。在此之后,相同的键被替换为redis。 add key 0 900 9 memcached STORED get key VALUE key 0 9 memcached END replace key 0 900 5 ... 完整答案
通过使用 append 命令,可以附加键的值。 语法 append key flags exptime bytes [noreply] value 在给定的示例中,我们试图在不存在的键中添加一些数据。因此,Memcached 返回 NOT_STORED。在此之后,设置一个键并将数据附加到其中。 append yiibai 0 900 5 redis NOT_STORED set yiibai 0 900 9 memcached STORED get yiibai ... 完整答案
通过使用 prepend 命令,可以预先添加键的值。 语法 prepend key flags exptime bytes [noreply] value 在给定的示例中,我们试图在不存在的键中添加一些数据。因此,Memcached 返回 NOT_STORED。在此之后,设置一个键并将数据添加到其中。 prepend tutorials 0 900 5 redis NOT_STORED set tutorials 0 900 9 memcached STORED g... 完整答案
Memcached中通过使用 delete 命令,可以删除指定的键。 语法 delete key [noreply] 在给定的示例中,我们使用 yiibai 作为键,并在其中添加值 Memcached,其过期时间为 900 秒。在此之后,它会删除存储的键。 set yiibai 0 900 9 memcached STORED get yiibai VALUE yiibai 0 9 memcached END delete yiibai DELETED ge... 完整答案
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... 完整答案
通过使用 Version 命令,可以获得版本。 完整答案
通过使用 Quit 命令,可以关闭连接。 完整答案
当数据发生变化时,有两种方法可以更新 Memchached: 通过主动清除缓存:可以在插入或更新时通过清除缓存来更新 Memcached。通过重置缓存:与第一种方法略有相似,但它不会删除键并等待下一次数据请求刷新缓存,而是在插入或更新后重置值。 完整答案
如果缓存过期,网站同时受到客户端多个请求的攻击,这种效应称为 Dogpile 效应。使用信号量锁可以防止这种影响。在这个系统中,当值到期时,第一个进程获取锁并开始生成新值。 完整答案
在 Memcached 中,数据不是永久存储的。它不是持久数据,因此,如果服务器关闭或重新启动,存储在 Memcached 中的所有数据都将被删除。 完整答案
发生故障的服务器中的数据不会被删除,但有一个自动故障的规定,可以为多个节点配置。故障转移可以在任何套接字或 Memcached 服务器级别错误期间触发,而不是在正常客户端错误期间(如添加现有键等)触发。 完整答案
以下是最大限度地减少 Memcached 服务器中断的方法: 当一个实例发生故障,或其中几个实例宕机时,这种情况在客户端重新加载丢失的数据时会给数据库服务器带来更大的负载。为避免这种情况,应该编写代码以最大程度地减少缓存踩踏事件,这样会产生相对较小的影响。可以使用丢失的机器 IP 地址在新机器上启动 Memcached 实例。代码是减少服务器中断的另一种选择,因为它能够以最少的工作自由更改 Memcached 服务器列表。设置超时值是一些 Memcached 客户端针对 Memcached 服... 完整答案