5、memcached 是怎么工作的?
5、memcached 是怎么工作的?
一个节点;客户端将请求发送给选中的节点,然后 memcached 节点通过一个内部的哈希算法(阶段二哈希),查找真正的数据(item)
6、memcached 最大的优势是什么?
Memcached 最大的好处就是它带来了极佳的水平可扩展性,特别是在一个巨大的系统中。由于客户端自己做了一次哈希,那么我们很容易增加大量 memcached到集群中。memcached 之间没有相互通信,因此不会增加 memcached 的负载;没有多播协议,不会网络通信量爆
炸(implode)。memcached 的集群很好用。内存不够了?增加几台 memcached 吧;CPU 不够用了?再增加几台吧;有多余的内存?
在增加几台吧,不要浪费了。
基于 memcached 的基本原则,可以相当轻松地构建出不同类型的缓存架构。除了这篇 FAQ,在其他地方很容易找到详细资料的。
7、memcached 和 MySQL 的 query
cache 相比,有什么优缺点?
把 memcached 引入应用中,还是需要不少工作量的。MySQL 有个使用方便的query cache,可以自动地缓存 SQL 查询的结果,被缓存的 SQL 查询可以被反复地快速执行。Memcached 与之相比,怎么样呢?MySQL 的 query cache 是集中式的,连接到该 query cache 的
MySQL 服务器都会受益。
当您修改表时,MySQL 的 query cache 会立刻被刷新(flush)。存储一个 memcached item 只需要很少的时间,但是当写操作很频繁时,MySQL的 query cache 会经常让所有缓存数据都失效。
在多核 CPU 上,MySQL 的 query cache 会遇到扩展问题(scalabilityissues)。在多核 CPU 上,query cache 会增加一个全局锁(global lock), 由于需要刷新更多的缓存数据,速度会变得更慢。
在 MySQL 的 query cache 中,我们是不能存储任意的数据的(只能是SQL 查询结果)。而利用 emcached,我们可以搭建出各种高效的缓存。比如,可以执行多个独立的查询,构建出一个用户对象(user object),然后将用户对象缓存到 memcached 中。而 query cache
是 SQL 语句级别的,不可能做到这一点。在小的网站中,query cache 会有所帮助,但随着网站规模的增加,query cache 的弊将大于利。
query cache能够利用的内存容量受到MySQL服务器空闲内存空间的限制。给数据库服务器增加更多的内存来缓存数据,固然是很好的。
但是,有了memcached,只要您有空闲的内存,都可以用来增加 memcached 集群的规模,然后您就可以缓存更多的数据。
8、memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有
什么优缺点?
首先,local cache 有许多与上面(query cache)相同的问题。local cache 能够利用的内存容量受到(单台)服务器空闲内存空间的限制。不过,local cache 有一点比 memcached 和 query cache 都要好,那就是它不但可以存储任意的数据,而且没有网络存取的延迟。
local cache 的数据查询更快。考虑把 highly common 的数据放在 localcache 中吧。如果每个页面都需要加载一些数量较少的数据,考虑把它们放在local cached 吧。
local cache 缺少集体失效(groupinvalidation)的特性。在 memcached 集群中,删除或更新一个 key 会让所有的观察者觉察到。但是在 local cache 中, 我们只能通知所有的服务器刷新 cache(很慢,不具扩展性),或者仅仅依赖缓存超时失效机制。
local cache 面临着严重的内存限制,这一点上面已经提到。
9、memcached 的 cache 机制是怎样的?
Memcached 主要的 cache 机制是 LRU(最近最少用)算法 +超时失效。当您存数据到 memcached 中,可以指定该数据在缓存中可以呆多久 Which is forever,or some time in the future。如果 memcached 的内存不够用了,过期的 slabs会优先被替换,接着
就轮到最老的未被使用的 slabs。
10、memcached 如何实现冗余机制?
不实现!我们对这个问题感到很惊讶。Memcached 应该是应用的缓存层。它的设计本身就不带有任何冗余机制。如果一个 memcached 节点失去了所有数据,您应该可以从数据源(比如数据库)再次获取到数据。您应该特别注意,您的应用应该可
以容忍节点的失效。不要写一些糟糕的查询代码,寄希望于 memcached 来保证一切!如果您担心节点失效会大大加重数据库的负担,那么您可以采取一些办法。比如您可以增加更多的节点(来减少丢失一个节点的影响),热备节点(在其他节点 down 了的时候接管
IP),等等
11、memcached 如何处理容错的?
不处理!在 memcached 节点失效的情况下,集群没有必要做任何容错处理。如果发生了节点失效,应对的措施完全取决于用户。节点失效时,下面列出几种方案供您选择:
忽略它!在失效节点被恢复或替换之前,还有很多其他节点可以应对节点失效带来的影响。

全站分卷索引 · 222 卷
- 1JavaOOP面试题
- 27、Java的数据结构有那些?
- 314、Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型
- 420、访问修饰符 public,private,protected,以及不写(默认) 时的区别?
- 525、equals与==的区别
- 641、Object类常用方法有那些?
- 747、构造方法能不能显式调用?
- 854、String str=”aaa”,与String str=new String(“aaa”)一样吗?
- 963、Hashcode的作用
- 1066、有没有可能两个不相等的对象有相同的hashcode
- 1170、final、finalize()、finally
- 1278、什么是成员内部类
- 1385、排序都有哪几种方法?请列举
- 1495、String 和 StringBuilder、StringBuffer 的区别?
- 15100、Java 中会存在内存泄漏吗,请简单描述。
- 16101、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被 synchronized修饰?
- 17104、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?
- 18107、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
- 193、Collection包结构,与Collections的区别
- 208、集合类存放于 Java.util 包中, 主要有几 种接口
- 2114、HashSet( Hash 表)
- 2216、说说LinkHashSet( HashSet+LinkedHashMap)
- 2319、HashTable(线程安全)
- 2421、LinkHashMap(记录插入顺序)
- 253、如何自定义一个异常
- 266、Thow与thorws区别
- 273、常用io类有那些
- 2810、JAVA NIO
- 29Java反射面试题
- 308、Java 反射 API
- 31Java序列化面试题
- 327、序列化 ID
- 332、注解是什么?
- 343、实现 Runnable 接口。
- 357、如何停止一个正在运行的线程
- 368、notify()和notifyAll()有什么区别?
- 3711、Thread 类中的start() 和 run() 方法有什么区别?
- 3817、SynchronizedMap和ConcurrentHashMap有什么区别?
- 3922、说说自己是怎么使用 synchronized 关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式
- 4030、阻塞状态(BLOCKED)
- 4133、start 与 run 区别
- 4238、Synchronized 同步锁
- 4340、Condition 类和 Object 类锁方法区别区别
- 4443、Semaphore 与 ReentrantLock 区别
- 4549、轻量级锁
- 4657、线程中断(interrupt)
- 4764、寄存器
- 4874、拒绝策略
- 4977、Java 中的阻塞队列
- 5078、ArrayBlockingQueue(公平、非公平)
- 5185、在 java 中守护线程和本地线程区别
- 5292、在 Java 中 Executor 和 Executors 的区别?
- 5397、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
- 54103、为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
- 55JVM面试题
- 5610、解释 Java 堆空间及 GC?
- 5712、程序计数器(线程私有)
- 5818、描述一下 JVM 加载 class 文件的原理机制
- 5923、新生代
- 6029、标记清除算法( Mark-Sweep)
- 6132、分代收集算法
- 6238、JAVA虚引用
- 6346、Parallel Scavenge 收集器(多线程复制算法、高效)
- 6459、CMS 收集器(多线程标记清除算法)
- 6562、类加载器
- 6663、双亲委派
- 6767、JVM内存模型
- 6876、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
- 6979、Java对象创建过程
- 7086、Minor GC与Full GC分别在什么时候发生?
- 712、TokuDB( Fractal Tree-节点带数据)
- 726、InnoDB与MyISAM的区别
- 7311、第二范式(2nd NF- 每个表只描述一件事情)
- 7415、简单说一说drop、delete与truncate的区别
- 7520、大表如何优化?
- 7622、分库分表之后,id 主键如何处理
- 7729、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别
- 7838、列对比运算符是什么?
- 7948、MySQL 支持事务吗?
- 8055、什么情况下设置了索引但无法使用
- 8161、为表中得字段选择合适得数据类型
- 8267、完整性约束包括哪些?
- 8375、主键、外键和索引的区别?
- 8483、什么是页级锁
- 856、Memcache 与 Redis 的区别都有哪些?
- 8611、热点数据和冷数据是什么
- 8715、Redis 常见性能问题和解决方案?
- 8819、Redis 常见性能问题和解决方案:
- 8926、Redis 集群方案什么情况下会导致整个集群不可用?
- 9040、Redis 如何做内存优化?
- 9147、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?
- 922、memcached 服务在企业集群架构中有哪些应用场景?
- 935、memcached 是怎么工作的?
- 9412、如何将 memcached 中 item 批量导入导出?
- 9520、什么是二进制协议,我该关注吗?
- 96MongoDB面试题
- 974、NoSQL数据库有哪些类型?
- 9815、如何执行事务/加锁?
- 9929、如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?
- 10042、分析器在MongoDB中的作用是什么?
- 10156、MongoDB的优势有哪些
- 10267、MongoDB中的命名空间是什么意思?
- 10375、在MongoDB中如何除去一个数据库Collection Methods24.在MongoDB中如何除去一个数据库
- 10485、如何在集合中插入一个文档
- 10593、在MongoDB中如何排序
- 1065、Spring Framework 中有多少个模块,它们分别是什么?
- 1078、使用 Spring 有哪些方式?
- 10816、Spring IoC 的实现机制。
- 10919、spring 支持集中 bean scope?
- 11023、自动装配有哪些方式?
- 11130、@Qualifier 注解有什么用?
- 11234、spring JDBC API 中存在哪些类?
- 11340、什么是切点(JoinPoint)
- 11446、如何理解 Spring 中的代理?
- 11550、介绍一下 WebApplicationContext
- 11655、Spring中Autowired和Resource关键字的区别
- 11757、讲一下什么是Spring
- 11859、springMVC是什么
- 11965、解释Spring支持的几种bean的作用域。
- 12071、解释 AOP 模块
- 12181、有哪些不同类型的 IOC(依赖注入)方式?
- 12291、什么是 Spring 的内部 bean?
- 123102、@Autowired 注解
- 124113、解释 AOP
- 125126、什么是 Spring 的 MVC 框架?
- 1263、Spring Boot 有哪些优点?
- 1277、如何在Spring Boot启动的时候运行一些特定的代码?
- 12815、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
- 12923、如何实现 Spring Boot 应用程序的安全性?
- 13034、什么是 AOP?
- 13140、运行 Spring Boot 有哪几种方式?
- 13249、如何重新加载Spring Boot上的更改,而无需重新启动服务器?
- 13353、Spring Boot 还提供了其它的哪些 Starter Project Options?
- 13455、创建一个 Spring Boot Project 的最简单的方法是什么?
- 13558、 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
- 13661、什么是 Spring Data REST?
- 13765、如何使用 Spring Boot 生成一个 WAR 文件?
- 13873、如何不通过任何配置来选择 Hibernate 作为 JPA 的默认实现?
- 13976、Spring Boot 配置的默认 H2 数据库的名字是上面?为什么默认的数据库名字是 testdb?
- 14081、如何使用配置文件通过 Spring Boot 配置特定环境的配置?
- 14183、如何禁用特定的自动配置?
- 14287、SpringBoot 中静态首页默认位置可以放在哪里?
- 143Spring Cloud面试题
- 1447、什么是 Netflix Feign?它的优点是什么?
- 1459、什么是微服务
- 14611、Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
- 14714、说说 RPC 的实现原理
- 14819、微服务之间是如何独立通讯的?
- 14927、springcloud断路器作用?
- 15035、Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
- 1513、使用 rabbitmq 的场景
- 15210、使用 RabbitMQ 有什么好处?
- 15315、如何保证消息的可靠传输?如果消息丢了怎么办
- 15417、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决
- 15520、什么是Publisher ?
- 15631、Fanout(广播分发)?
- 157Dubbo 面试题
- 1585、一般使用什么注册中心?还有别的选择吗?
- 15914、Dubbo 集群容错有几种方案?
- 16019、Dubbo 配置文件是如何加载到 Spring 中的?
- 16124、Dubbo 必须依赖的包有哪些?
- 16231、Dubbo是什么?
- 16342、Dubbo可以对结果进行缓存吗?
- 16430、服务读写推荐的容错策略是怎样的?
- 165MyBatis 面试题
- 1668、 模糊查询 like 语句该怎么写?
- 16713、如何获取自动生成的(主)键值?
- 16814、在 mapper 中如何传递多个参数?
- 16918、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
- 17024、什么是 MyBatis 的接口绑定?有哪些实现方式?
- 17128、MyBatis实现一对一有几种方式?具体怎么操作的 ?
- 1726、四种类型的数据节点 Znode
- 17311、ACL 权限控制机制
- 17417、zookeeper 是如何保证事务的顺序一致性的?
- 17524、Zookeeper 对节点的 watch监听通知是永久的吗?为什么不是永久的?
- 17632、分布式通知和协调
- 17739、事务编号 Zxid(事务请求计数器+ epoch)
- 17846、ZAB 协议 JAVA 实现(FLE-发现阶段和同步合并为 Recovery Phase(恢复阶段) )
- 1791、栈(stack)
- 1805、排序二叉树
- 1816、 前缀树
- 1827、红黑树
- 1838、B-TREE
- 1849、位图
- 185算法面试题
- 1863、假设今日是2015年3月1日,星期日,请算出13个月零6天后是星期几,距离现在多少天(请用代码实现,谢绝调用API方法)
- 1875、二分查找
- 1888、快速排序算法
- 1899、希尔排序算法
- 19010、归并排序算法
- 19111、桶排序算法
- 19213、剪枝算法
- 19317、AES
- 19419、CRC
- 19521、更多算法练习
- 1963、elasticsearch 索引数据多了怎么办,如何调优,部署
- 1976、详细描述一下 Elasticsearch 搜索的过程?
- 1989、Elasticsearch 是如何实现 Master 选举的?
- 19913、详细描述一下 Elasticsearch 更新和删除文档的过程。
- 20017、对于 GC 方面,在使用 Elasticsearch 时要注意什么?
- 20122、介绍一下你们的个性化搜索方案?
- 202Kafka 面试题
- 2033、数据文件分段 segment(顺序读写、分段命令、二分查找)
- 2048、Consumer Group
- 20513、讲一下主从同步
- 20619、消费者如何不自动提交偏移量,由应用提交?
- 207微服务 面试题
- 2083、微服务有哪些特点?
- 2095、微服务架构如何运作?
- 2108、在使用微服务架构时,您面临哪些挑战?
- 21113、什么是无所不在的语言?
- 21220、Spring Cloud 解决了哪些问题?
- 21328、双因素身份验证的凭据类型有哪些?
- 21434、什么是端到端微服务测试?
- 21540、我们如何进行跨功能测试?
- 21646、什么是持续集成(CI)?
- 2173、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当
- 2188、建立软链接(快捷方式),以及硬链接的命令
- 21914、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
- 22025、怎么查看系统支持的所有信号?
- 22134、查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?
- 22241、如果你的助手想要打印出当前的目录栈,你会建议他怎么做?