l 高并发访问数据库的痛楚:死锁!
l 磁盘IO之痛:本机:AspNet:HttpRuntime.Cache(这个东档是microsoft做的不错折缓存)
l 多客户端共享缓存
l Net + Memory >> IO (一般速度是这样)
l 读写性能完美 Redies:Mm, 1s:读取可以1w次。 写:10w
l 超简单集群搭建 Cluster
l 开源 Open Source
l 没有提供主从赋值功能,也没提供容灾等功能,所以所有的代码基本都只是考虑性能最佳。
l 学习成本非常低,入门非常容易
l 丰富的成功的案例
原理:
l Socket 服务器端
l 数据:键值对存储
l 内存处理的算法:
· 本质就是一个大的哈希表。key最大长度是255个字符。
· 内存模型:Memcache预先将可支配的内存空间进行分区(Slab),每个分区里再分成多个块(Chunk)最大1MB,但同一个分区里:块的长度(bytes)是固定的。
· 插入数据:查找适合自己长度的块,然后插入,会有内存浪费。
· LRU,闲置>过期 >最少访问
· 惰性删除:它并没有提供监控数据过期的机制,而是惰性的,当查询到某个key数据时,如果过期那么直接抛弃。
l 集群搭建原理:
· Memcache服务器端并没有提供集群功能,但是通过客户端的驱动程序实现了集群配置。
· 客户端实现集群的原理:首先客户端配置多台集群机器的ip和端口的列表。然后客户端驱动程序在写入之前,首先对key做哈希处理得到哈希值后对总的机器的个数进行取余然后就选择余数对应的机器。
memcached的安装
l 下载Memcache:http://code.jellycan.com/Memcache/
l 将服务程序拷贝到一个磁盘上的目录
l 安装服务:cmd→Memcached.exe -d install 打开服务监控窗口可以查看服务是否启动。
l 启动服务:cmd→Memcached.exe -d start(restart重启,stop关闭服务)
l 检查服务是否启动:连接到Memcache控制台:telnet ServerIP 11211 输入命令:stats检查当前服务状态。
l 卸载服务:Memcached.exe -d uninstall
l 遇到问题:win8下安装服务。无法启动此程序,因为计算机中丢失 MSVCR71.dll。尝试重新安装该程序以解决此问题。下载dll地址:http://www.dll-files.com/dllindex/dll-files.shtml?msvcr71