李亚衡
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
什么是Memcache?
MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统, MemCaChe是一个存储键值对的HashMap, 在内存中对任意的数据(比如字符串、对象等)使用key-value存储, 数据可以来自数据库调用、API调用,或者页面渲染的结果。MemCache设计理念就是小而强大, 它简单的设计促进了快速部署、易于开发并解决面对大规模的数据缓存的许多难题
为什么要使用Memcache?
主要用于动态Web应用以减轻数据库的负载。 它通过在内存中缓存数据和对象来减少读取数据库的次数, 从而提高了网站访问的速度。
Memcache的实现原理
memcache处理的原子是每一个key、val,key会通过一个hash表转换成hash的key,便于查找对比以及竟可能的做到散列。同时mem用的是一个二级散列,通过一个hash表来维护。 memcache有两个核心组件:服务端和客户端 在一个memcache组件查询中,client先通过key的hash值来确定kv在service端的位置,当server端确定后,客户端就会发一个请求个server端。让它来查找出确切数据,因为这之间没有交互以及多播协议,因此mem带给网络的影响最小
Memcache的安装
需要注意1.4.5版本之前和1.45之后的区别
MemCache和MemCached的区别
1、MemCache是项目的名称
2、MemCached服务器端可以执行文件的名称
MemCache命令
stats指令解读
stats slab指令解读
http://www.cnblogs.com/xrq730/p/4948707.html
三种Memcached Client
Memcached Client for Java
SpyMemcached
XMemcached
Memcached Client for Java 比 SpyMemcached更稳定、更早、更广泛;
SpyMemcached 比 Memcached Client for Java更高效;
XMemcached 比 SpyMemcache并发效果更好。
memcache如何储存java对象?
memcache连接无需验证,如何保证安全?
数据库信息更改,怎么保证缓存和数据库的信息一致?
序列化和反序列化
使用内网IP访问,防火墙限制端口
在service中及时修改缓存中的内容
JAVA中缓存的实质是什么?
百度百科
memcache超详细解读:http://www.cnblogs.com/xrq730/p/4948707.html
Memcache安全配置:http://blog.csdn.net/myhuashengmi/article/details/51992519
Memcached笔记:http://snowolf.iteye.com/blog/1471805
By:李亚衡