你知道Memcached吗?

Posted 程序员小唐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你知道Memcached吗?相关的知识,希望对你有一定的参考价值。

你知道Memcached吗?

蓝色


你知道Memcached吗?

Memcached面试题

01

Memcached是什么?

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

02

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

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

03

Memcached是如何工作的?

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

04

Memcached是如何工作的?

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

05

Memcached是如何工作的?

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

06

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

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

07

Memcached的缺点/局限是什么?

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

08

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

  • 当缓存的已分配内存耗尽时。

  • 删除缓存中的项目时。

  • 当缓存中的单个项目过期时。

10

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

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

09

SAP HANA和Memcached之间的区别?

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

11

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

通过使用telnet hostname portNumber命令,可以使用telnet命令连接Memcached服务器。语法 $telnet HOST PORT 示例 给出的示例显示了如何连接到Memcached服务器并执行简单的set和get命令。

12

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

通过使用get命令,您可以获取键对应的值。语法 get key

13

如何设置 Memcached 键的值?

通过使用set命令,您可以设置密钥的值。语法 set key flags exptime bytes [noreply] value

14

如何在memcached键中增加值?

通过使用add命令,您可以在键中添加值。语法 add key flags exptime bytes [noreply] value

15

如何更换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

16

在Memcached中如何附加键的值?

通过使用append命令,可以附加键的值。语法 append key flags exptime bytes [noreply] value

17

如何预先设定Memcached键的值?

通过使用prepend命令,可以预先添加键的值。语法 prepend key flags exptime bytes [noreply] value

18

如何删除Memcached 中的键?

通过使用delete命令,可以Memcached 中的键。语法 delete key [noreply]

19

如何显示Memcached的统计数据?

通过使用stats命令,可以显示统计信息。语法 stats

20

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

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

21

如何关闭Memcached连接?

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

22

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

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

23

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

如果缓存过期,并且网站被客户端同时发出多个请求,则此效果称为Dogpile效果。

24

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

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

25

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

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

26

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

以下是最小化Memcached服务器中断的方法:

  • 当一个实例发生故障时,其中一些实例出现故障,当客户端重新加载丢失的数据时,这种情况会给数据库服务器带来更大的负载。为了避免这种情况,应该编写代码以最小化缓存标记,并且它将产生相对较小的影响。

  • 该代码是另一种最小化服务器中断的选项,因为它使您可以自由地以最少的工作更改Memcached服务器列表。

  • 设置超时值是一些Memcached客户端为Memcached服务器中断实现的另一个选项。当Memcached服务器关闭时,客户端将继续尝试发送请求,直到达到超时限制。

你知道Memcached吗?








我就知道你“在看”


以上是关于你知道Memcached吗?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8 Autocomplete Broken - 仅显示有限的用户代码片段 - 知道为啥吗?

memcached value最大限制只能是1M吗

阿里四面:你知道Spring AOP创建Proxy的过程吗?

架构丰富的代码片段也应该用于产品列表吗?

为 memcached 和 Rails 组合片段和对象缓存的最佳方式

Redis这些知识你知道吗?