为什么要使用Memcached?
1)高并发访问数据库的痛:死锁
2)磁盘IO之痛
3)读写性能完美
4)超简单的集群搭建Cluster
5)开源
6)性能最佳
7)丰富的成功案例
Memcached是一个高性能的支持分布式的内存存储系统。你可以把他看成一个巨大的hash表。形式入:
Key(键) Value(值)
唯一键值(String) 基本数据(整型, 浮点型,字串,布尔) ,复合类型 (数组, 对象) ,特殊类型(NULL, 不能存放资源), 二进制数据(图片,视频,音频)
注意:Redis在存入对象的时候,不能直接存入,而是要先序列化,然后再存入,使用的时候,再反序列化。
Memcached的安装和配置(在windows安装)
(1) 下载安装文件 memcached.exe
(2) 安装指令cmd>{%mem%}/memcached.exe -d install
(3) 使用cmd>{%mem%}/memcached -d start 【启动】
如果启动成功,我们可以使用
cmd>netstat -an
如果发现有一个 11211端口在监听则说明你的服务OK
补充:
我们也可以把memcached当做一个程序来使用,
cmd>{%mem%}/memcached.exe -p 端口号
(4) 使用telnet工具登录到Memcached 中进行操作
cmd>telnet 127.0.0.1 11211
注意:Memcached安装不成功的原因和解决
可能安装失败的原因分析
6.1 如果你是用win7,win8系统,他对安全性要求高,因此,需要大家使用管理员的身份来安装和启动. 具体是 程序开始===>所有程序==》附件==》cmd(单击右键,选择以管理员的身份来执行)
6.2 存放memcache.exe 目录不要有中文或者特殊字符
6.3 安装成功,但是启动会报告一个错误信息,提示缺少xx.dll ,你可以从别的机器拷贝该dll文件,然后放入到system32下即可,并执行【然后打开“开始-运行-输入regsvr32 /s MSVCR71.dll”,回车即可解决错误提示!】,这是因为有些电脑上装的操作系统是阉割版的。
6.4 如果上面三个方法都不可以,你可以直接这样启动mem
cmd>memcached.exe -p 端口 【这种方式不能关闭窗口】
集群搭建原理:
Memcache服务器端并没有提供集群功能,但是通过客户端的驱动程序实现了集群配置。
客户端实现集群的原理:首先客户端配置多台集群机器的ip和端口的列表。然后客户端驱动程序在写入之前,首先对key做哈希处理得到哈希值后对总的机器的个数进行取余然后就选择余数对应的机器。
最后再补充一点:
1.1 memcached的数据生命周期
当一个键值对存放到mem中,在以下情况将会被销毁
(1) 时间到(生命周期从存放时就开始计算)
(2) 你使用delete函数,删除 flush_all
(3) 重启mem服务
(4) 重启系统
1.2 memcached插入数据的原则(说的不全,希望大家多多包涵)
(1) 变化频繁,具有不稳定性的数据,不需要实时入库。(比如在线人数,在线状态,用户评分)
(2) 门户网站的新闻,觉得页面静态化不能满足需求,可以放入到mem中。(配合JQuery的AJAX请求)
1.3 什么样的数据不适合放入memcached中
(1)过大的数据、特别重要的数据