--什么是memecache
memcache是一个c/s架构的软件,它通过维护的一张hash表提供内存维护服务,它是一个高性能的分布式的内存对象缓存系统。
--什么地方使用memcache
--工作模式
memcache的server端以守护进程的方式运行于服务器中。
client连接server。(client可以用多种语言编写,如php,c,c++,java,perl,python等)
--工作原理
memcache在内存中维护了一个hash表(在hash表中通过key来访问value),常被访问的数据保存在此hash表中。
Memcache和MySQL交互流程图
如上图,传统的查询方法是直接查询数据库,数据库将结果返回给查询语句,而当有Memcache中间缓存层时,查询的是Memcache缓存数据,下面详细了解Memcache各类数据操作原理:
--使用方法
对MySQL的数据操作,主要涉及到的Memcache方法如下:
--memcache和静态页面的比较
php中可以通过生成静态页面减少对数据库的访问,提升效率,但静态页面仍然是以文件的形式存在硬盘中,而memcache是存在内存中的,速度要高很多。
--windows下memcache服务器端的安装与启动方法
下载了程序后,在相应目录执行memcached.exe -d install.
安装后,将会以服务(守护进程)的形式在后台运行。
在相应目录执行memcached.exe -d uninstall
在相应目录执行memcached.exe -d [-m 内存大小,单位m] [-l ip地址] [-p 端口号] [-c 最大连接数] start
(默认为本机ip,端口11211),启动后在后台将有个memcached的进程运行。
--memcache的操作(命令行方式)
- telnet ip地址 11211
telnet默认端口是23,但也可以自己指定其他端口,在memcache的telnet服务器端支持的是11211端口。
--------------php下memcache客户端(是php的扩展包)的安装----------------
--windows下memcache客户端(是php的扩展包)的安装
-----------------php下Memcache类的使用-----------------
--创建Memcache类的实例
- $mem = new Memcache;
Memcache类的构造函数没有参数,所以直接new Memcache。
--连接到memcache服务器
客户端(php的扩展模块)使用Memcache的方法connect(string host,[port])连接到memcache服务器。
- bool Memcache::connect ( string host [, int port [, int timeout]] )
host是服务器域名或ip,port一般是11211.
--连接其他并发服务器
客户端(php的扩展模块)使用Memcache的方法addServer()连接多个服务器。
- bool Memcache::addServer ( string host [, int port [, bool persistent [, int weight [, int timeout
- [, int retry_interval [, bool status [, callback failure_callback]]]]]]] )
--往hash表添加数据
客户端(php的扩展模块)使用Memcache的方法add()往hash里添加数据。
- bool Memcache::add ( string key, mixed var [, int flag [, int expire]] )
如果两次添加操作都使用同样的key,系统发现已经有该key,后面的会是无效的。
--设置hash中的值
客户端(php的扩展模块)使用Memcache的方法set()设置(或改变)hash中的值(可以是数组类型)。
- bool Memcache::set ( string key, mixed var [, int flag [, int expire]] )
--获取hash中的值
客户端(php的扩展模块)使用Memcache的方法get()获取hash中的值。
- mixed Memcache::get ( string key )
--删除hash中的值
客户端(php的扩展模块)使用Memcache的方法delete()删除键为key的项。
- bool Memcache::delete ( string key [, int timeout] )
--注意事项
--memcache的安全
- iptables -a input -p tcp -s 192.168.xxx.xxx -dport 11211 -j accept
- iptables -a input -p udp -s 192.168.xxx.xxx -dport 11211 -j accept