memcache

Posted 马冲的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了memcache相关的知识,希望对你有一定的参考价值。

Memcache=memory+cache----->内存作为缓存--->高性能分布式的对象缓存系统--->通过维护内存中一个巨大的hash表来实现数据缓存

Memcache-->soft-->C/S架构软件--->100K左右

作用---->缓存数据(不是文件)写入内存 节省I/O开销

技术分享图片技术分享图片 

Why use Memcache?

1.内存的读写速度高于硬盘

2.在服务器中 apache 消耗cpu  数据占用硬盘  大量多余的内存没有使用 可以为Memcache 提供内存使用 有效利用服务器资源

 

Study

Apache的进程 httpd

mysql 的进程 mysqld

Memchace 的进程 memcached

 

Memcache  守护进程方式 运行服务器中 监听服务器端口11211(默认)

 

可以连接memcache 的客户端 php------telnet------java------c#...

Telnet客户端用于练习(原始命令)
php客户端 用于实战

 

安装和卸载

C:Documents and SettingsAdministrator>D:Memcachememcached.exe -d install

C:Documents and SettingsAdministrator>D:Memcachememcached.exe -d start

C:Documents and SettingsAdministrator>D:Memcachememcached.exe -d stop

C:Documents and SettingsAdministrator>D:Memcachememcached.exe -d uninstall

 

XP系统 报错 缺失msvcr71.dll

Win7/8  安装不了

1.不是管理员身份  --->右键 以管理员身份运行

2.兼容性---->选择window xp

3.使用64位

 

 

Telnet 连接操作memcache

Telnet ip 地址 端口号

C:Documents and SettingsAdministrator>telnet localhost 11211

 

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 0

重置状态

stats reset

version

查看版本

version

verbosity

Increases log level

verbosity

quit

退出telnet连接

quit

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

当前线程数

 

 

读写操作

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

add key 0 0 3

kkk

STORED

读取 get 键名

get key

VALUE key 0 3

kkk

END

替换 replace 键名 标志位 生存时间 数据长度 回车输入数据(必须数据已存在)

replace key 0 10 3

key

STORED

替换或者添加(数据存在就替换 不存在就添加)

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

set key 0 0 4  (替换)

test

STORED

 

get key

VALUE key 0 4

test

END

set key1 0 0 3  (添加)

key

STORED

删除(单条数据)

delete 键名

delete key1

DELETED

get key1

END

查询所有

Stats cachedump 1 0

stats cachedump 1 0

ITEM key [4 b; 1405651153 s]

ITEM sex [10 b; 1405651153 s]

ITEM aaa [3 b; 1405651153 s]

END

Stats cachedump 1 2(从第一个到第二个)

stats cachedump 1 2

ITEM key [4 b; 1405651153 s]

ITEM sex [10 b; 1405651153 s]

END

添加(前)

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

prepend key 0 0 3

key

STORED

get key

VALUE key 0 11

keytesttest

END

添加(后)

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

append key 0 0 3

key

STORED

get key

VALUE key 0 14

keytesttestkey

END

版本

Version

version

VERSION 1.2.6

删除(全部数据)

flush_all

flush_all

OK

 

安全性问题 --->无密码访问

 

1.免费--->建立iptables防火墙(在防火墙中设置仅允许访问memcache端口的ip地址)

2.花费--->为每台服务器搭载独立的网卡(建立独立的局域网)

技术分享图片 

 

 

 


以上是关于memcache的主要内容,如果未能解决你的问题,请参考以下文章

Memcached详解

查看Memcache运行状况

缓存之Memcache

nginx+php+memcached

day13 memcache,redis,myqlachemy

PHP和Memcached - Memcached的安装