为什么要使用memcache?memcache有什么作用?

李亚衡

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

什么是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带给网络的影响最小

2.知识剖析

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并发效果更好。

3.常见问题

memcache如何储存java对象?

memcache连接无需验证,如何保证安全?

数据库信息更改,怎么保证缓存和数据库的信息一致?

4.解决方案

序列化和反序列化

使用内网IP访问,防火墙限制端口

在service中及时修改缓存中的内容

5.编码实战

6.扩展思考

JAVA中缓存的实质是什么?

7.参考文献

百度百科

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

8.更多讨论

谢谢观看

By:李亚衡