上一节用了mysql的memory存储引擎重写了session存储机制,这是我们第一次实战操作把数据存入内存里。在实际项目开发中,经常会把一些缓存数据存入内存里,使用mysql的memory存储引擎是其中一种方式,这种方式并不是最好的。使用memcache和Redis的比较多,很多企业招聘时,都会要求熟练掌握memcache和Redis的。
Redis这节不说,以后再讲。这节只介绍memcache。
memcache顾名思义就是“内存缓存”的意思,这是一个独立的软件,和PHP没有直接的关系,PHP有内置的类可操作memcache。
在PHP中使用memcache,一定要先做两件事:1.安装memcache;2.开启PHPmemcache的拓展。
做这两件事需要大家多去网上查找答案。
推荐一篇技术文章《WIN下PHP Memcache的安装和使用》
用phpinfo查看,楠神本地的PHP memcache拓展模块已开启。
我们使用PHP的memcache内置拓展类操作memcache。
memcache一些基础知识介绍:
1)memcache的开启:
在memcache开启时,可对它初始化一些参数,
介绍几个重要的参数:
-p 监听的端口号:memcache默认的端口号是11211,如果不设置端口号,默认就是11211
-l 监听的IP地址:请求主机的哪个ip可以连接memcache,不设置,监听ip默认是0.0.0.0。这个参数很重要的,memcache不像mysql一样,它没有密码验证,任何客户端都可以连接memcache对数据操作,不想第三方随便就能获取memcache的数据,就要加上这个参数。
-m 最大内存使用:memcache可以设置最大占用内存空间。假如说只给了memcache 100M内存,如果总的数据超过了100M,新插入的数据就会覆盖原先的数据。至于谁覆盖谁,memcache有自己的一套处理机制。在memcache的数据可以设置存储时间,存储的数据都没有过期,新插入的数据应该会覆盖读取次数最少的。memcache有很多智能化的地方,不需要使用者再去写逻辑代码操作了。
-c 最大同时连接数:指的就是并发量。
2)memcache的数据操作:
memcache使用起来非常简单,四个操作增删查改。
存数据改数据时,一个名字,一个数据值,就OK;可以对数据设置有效期,0就代表永久储存(但是它可能会因为为了给其他项分配空间而被删除)。
读数据时,通过名字获取还没有失效的数据。
删数据时,通过名字删除。
了解了基础介绍,我们开始写一个简单的代码测试下memcache能否正常使用。
ok了,没有问题。当把4行代码注释掉,在60秒内依然可以获取到值的。
如果这一步能正常完成,就可以开始下节的用memcache实现session存储机制的重写。
推荐:《MYSQL内存(MEMORY)表与Memcache访问速度测试》