你知道Memcached吗?
Posted 程序员小唐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你知道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吗?的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 8 Autocomplete Broken - 仅显示有限的用户代码片段 - 知道为啥吗?
阿里四面:你知道Spring AOP创建Proxy的过程吗?