memcache

 

 

Memcached是一个高性能分布式内存对象缓存系统,目前全世界很多人使用这个缓存项目来构建本身大负载的网站,来分担数据库的压力,经过在内存里维护一个统一的巨大的hash表,它可以用来存储各类格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,而后从内存中读取,从而大大提升读取速度。php

1、memecache原理(port:11211)

大访问量的时候,在咱们使用memcache的时,用户第一次请求的时候,服务器会从数据库中读取数据,并将数据缓存到memcache中,其余用户再次请求的时就会从memcache中读取数据,而再也不连接数据库。mysql

windows下启动时的指令:linux

-p 监听的端口
-l 链接的IP地址, 默认是本机 
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务sql

-m 最大内存使用,单位MB。默认64MB数据库

例:memcache –p 11211windows

经过telnet 来进行模拟操做数据:telnet localhost 11211数组

 

 

2、mysql与memcache的区别

Msyql是将数据存储在磁盘中缓存

memcache是存储在内存中,一旦断点或者重启将会致使数据丢失安全

msyql中数据是以二维表的形式存在的服务器

memcache是以键值对的形式存储在数据库中

3、telnet操做memcache

 一、添加数据:add key(键名) 0(是否压缩)  120(lifetime)  5(值的长度)

          在telnet中语句写错后不能修改,值的长度与输入的长度必须一致不能多也不能少

二、获取数据:get  key

三、修改数据:replace key  0  lifetime   length

       注:当字段已经存在的时候将会替换,若是不存在则替换失败

四、设置数据:set  key  0  lifetime  length

       注:当字段已经存在则进行替换,不存在则进行设置

五、删除数据:delete  key

六、后追加数据:append  key  lifetime  length

七、前追加数据:prepend  key lifetime  length

八、加法操做:incr  key  value

九、减法操做:decr  key  value

十、删除全部:flush all

十一、查看状态:stats         //查看命中率(命中率越高,越有不然须要调内存) get_hits/cmd_get

4、生存周期的设置

一、经过时间戳的形式 time()+lifetime  单位:秒

Add  name  0  time()+3600*24*7  length

二、经过指定生命周期的形式:lifetime

Add  name  0  3600*24*7  length

 

5、memcache对php数据类型的支持

memcache对于数据的存储都是以字符串的形式进行存储,不管是标量类型仍是非标量,对于数组、对象、null等都是先将其序列化之后再存储,咱们对其调用时的反序列化都是在memcache中进行的,而资源类型是没法存储到数据库的故将资源型转化为0字符

 

 

7、什么是序列化

         在保存数据的时候,不但保存数据的自己,还保存着数据的类型

         a、利于在网络间进行数据传输

         b、便于从新读取并回复数据

 

6、memcache与页面静态化的比较

7、memcache分布式服务器的配置

  在同一台服务器上,能够经过不一样的端口来实现虚拟的多态服务器的配置

  注意:在添加数据的时候,连接服务器的顺序和数量要和获取数据时的一致

 

8、memcache的安全机制

  一、memcache自己并无安全机制,只有经过服务器系统层面来设置安全性,如防火墙,selinux;一般memcache是放到私有网络(公司内网),并不会对外公开

  二、memcache –p 11211  –l  127.0.0.1

监听的ip地址,只接收该IP所传送的值

9、垃圾回收

  一、惰性删除:memcache内部并无监视记录是否过时,而是在get时查看记录的时间戳,检查记录是否过时

二、最少最近原则(LRU):设置的memcache的存储空间为64M,当空间满了,若是再存储数据时,会自动剔除最不活跃的数据

10、哪些数据适合存储为memcache

         ①安全性较差的数据,就算从内存中丢失也没有关系

         ②查询比较频繁的公有字段

         ③数据量不要太大,小于1M

         ④更新比较频繁的字段(如用户的状态)

十一、session放入memcache中

经过php.ini来进行设置session放入memcache中设置以下:

session.save_handler = memcache

session.save_port = ‘localhost:port’

将session_id做为key值存入memcache中

相关文章
相关标签/搜索