Memcache

Memcache

 

1.什么是Memcache?

a) memory+cache

b)  简单的说就是利用内存来缓存数据的一种机制

c) 高性能的分布式的对象缓存系统,是通过维护内存中一个巨大的hash表来实现数据缓存的一种操作.

d) 

key

value

name

丛浩

sex

superman

object(sex,age,heigh,weight......)

xiaohuoban

array(hb1,hb2......)

 

memcache是一种软件,一种c/s架构的软件,memcache就是几十Kb

memcache的主要作用就是把所有需要缓存的数据写入内存,节省I/O开销,提高程序访问效率.

 

为什么要用memcache?

PHP链接MYSQL进行访问操作.如果进行大量的读取访问等操作,会导致MYSQL服务器跟不上,最终导致悲剧的发生....

缓存原理

 

web服务器中,服务器apache服务器,主要消耗CPU资源,网站程序和文件资源主要消耗硬盘资源,没有程序消耗内存资源,memcache正是看到了这一点才选择使用内存来做缓存..

 

学习Memcache.

apache的进程名  httpd

mysql 的进程是mysqld

memcache的进程是 memcached

 

memcache的机制是一种以守护进程的方式运行在一台或者是多台服务器之中的,apache类似.

可以操作memcache的语言很多,

 

memcache 如何window安装和使用.

安装memcache

memcached.exe -d install

启动服务

memcached.exe -d start

停止服务

memcached.exe -d stop

卸载 memcache

memcached.exe -d uninstall

 

安装时候的注意事项.

xp操作系统,可能报错,缺少 msvcr71.dll  找到文件位置 复制进去即可(GHOST系统会有这个问题)

win7/8  软件兼容性的问题,可以使用64memcache

win7/8  请在管理员模式下安装,如果不是管理员,可以对软件进行右键操作->取得管理员权限.

 

memcache的其他操作

-p 监听的端口   默认值 11211
-l 连接过来IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB ,最大好像2G
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

 

 

使用客户端连接memcache

使用telnet 连接memcache

 

使用stats命令显示的结果内容:

Stats详解

pid

memcache服务器的进程ID

uptime

服务器已经运行的秒数

time

服务器当前的unix时间戳

version

memcache版本

pointer_size

当前操作系统的指针大小(32位系统一般是32bit)

rusage_user

进程的累计用户时间

rusage_system

进程的累计系统时间

curr_items

服务器当前存储的items数量

total_items

从服务器启动以后存储的items总数量

bytes

当前服务器存储items占用的字节数

curr_connections

当前打开着的连接数

total_connections

从服务器启动以后曾经打开过的连接数

connection_structures

服务器分配的连接构造数

cmd_get

get命令(获取)总请求次数

cmd_set

set命令(保存)总请求次数

get_hits

总命中次数

get_misses

总未命中次数

evictions

为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)

bytes_read

总读取字节数(请求字节数)

bytes_written

总发送字节数(结果字节数)

limit_maxbytes

分配给memcache的内存大小(字节)

threads

当前线程数

 

Memcached操作

 

Command

Description

Example

get

获取值

get mykey

set

设置值(可以存在可以不存在)

set mykey 0 60 5

add

添加新值

add newkey 0 60 5

replace

替换值(必须已存在)

replace key 0 60 5

append

在原有值之后添加数据

append key 0 60 15

prepend

在原有值之前添加数据

prepend key 0 60 15

incr

Increments numerical key value by given number

incr mykey 2

decr

Decrements numerical key value by given number

decr mykey 5

delete

删除一条数据

delete mykey

flush_all

清除所有数据

flush_all

清除900秒之内的数据

flush_all 900

stats

查看所有状态

stats

Prints memory statistics

stats slabs

Prints memory statistics

stats malloc

Print higher level allocation statistics

stats items

 

stats detail

已使用大小

stats sizes

 

Stats cachedump 1

重置状态

stats reset

version

查看版本

version

verbosity

Increases log level

verbosity

quit

退出telnet连接

quit

 

memcache的数据存储命令:

add 命令 添加一条数据

格式:

add 键名 标志位 生存时间  数据长度  回车 ->输入数据

get 命令  获取数据的值

格式:

get 键名

set 命令  设置数据的值 可以添加数据(不存在数据),可以修改数据(已存在)

格式:

set 键名 标志位 生存时间 数据长度  回车->输入数据

replace 命令  修改已经存在的数据的值

格式:

replace 键名 标志位 生存时间 数据长度  回车->输入数据

delete 命令  删除一条数据

delete 键名

flush_all 清空数据

格式:

flush_all 清空所有数据

flush_all 时间  清除N秒以内的数据

 

 

解决安全的问题:

1.要钱的

增加网卡,为每台服务器配置2个网卡,一个内网网卡,一个外网网卡

 

 

2.不要钱.

配置防火墙,设置允许访问的IP地址..详情请参照细说PHP519.

posted on 2017-03-30 11:39  疯狂奔跑  阅读(186)  评论(0编辑  收藏  举报

导航