Memcached基本使用

memcached 是一个高效的分布式的内存对象缓存系统 ,他可以支持把各种数据(数组,对象,基本数据类型,资源除外)放入到它管理的内存中。它采用c/s结构,使用简单文本通讯并 基于libevent处理并发,将数据存入内存的缓存工具,它是基于 基于客户端的分布式,服务器端本身并不是分布式的。
win32系统下的安装步骤:
①下载memcached软件
②解压 其中有一个memcached.exe文件
③安装memcached –d install [卸载使用 memcached -d uninstall]
④启动 memcached 服务
(1)直接通过界面启动该服务
(2)在控制台下启动 memcached –d start   [命令一览表]
⑤查看memcached 服务是否启动成功! 默认端口11211 通过netstat -anb|find 11211命令可以查看
开启另一个端口,采用添加服务方法
####添加服务
sc create "memcached2 Server" binPath= "\"D:\dev_tool\memcache\memcached-1.2.1-win32\memcached.exe\" -p 11212  -m 50 -d runservice" type= "own" start= "demand" displayname= "memcached2_Server"
sc description "memcached2 Server" "memcached 1.2.3 port 11212"

------LINUX 

1.编译安装libevent

2.编译安装Memcached

在我写这篇文章的时候,libevent已经有1.4.8稳定版,Memcached Server已经有1.3.0版本。本文就以这两个版本为例,我的gcc是gcc version 3.3.4 (Debian 1:3.3.4-7)。

首先安装libevent

wget http://www.monkey.org/~provos/libevent-1.4.8-stable.tar.gz

tar zxvf libevent-1.4.8-stable.tar.gz

cd libevent-1.4.8-stable

./configure –prefix=/usr 指定安装在/usr下。一开始我没有指定安装目录导致libevent安装在/usr/local/lib,导致Memcached安装后找不到libevent库,即使手工指定路径也不行

make && make install

make clean

然后安装Memcached Server

wget  http://www.danga.com/memcached/dist/memcached-1.3.0.tar.gz

tar zxvf memcached-1.3.0.tar.gz

cd memcached-1.3.0/

./configure --with-libevent=/usr 这里需要指定libevent的路径

make && make install

make clean

一眨眼功夫就都编译安装完成了。

测试下Memcached安装成功没:

/usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

没错误提示的话,证明安装成功并且启动了Memcached服务了

/usr/local/bin/memcached -u root -d -m 100m -L -M -l 99.6.137.76 -p 11120-c 256-P /tmp/memcached.pid 
 
memcached的基本命令(安装、卸载、启动、配置相关):
-p 监听的端口 
-l 连接的IP地址, 默认是本机  
-d start 启动memcached服务 
-d restart 重起memcached服务 
-d stop|shutdown 关闭正在运行的memcached服务 
-d install 安装memcached服务 
-d uninstall 卸载memcached服务 
-u 以的身份运行 (仅在以root运行的时候有效) 
-m 最大内存使用,单位MB。默认64MB 
-M 内存耗尽时返回错误,而不是删除项 
-c 最大同时连接数,默认是1024 
-f 块大小增长因子,默认是1.25 
-l是监听的服务器IP地址,如果有多个地址的话
-n 最小分配空间,key+value+flags默认是48 
-P是设置保存Memcache的pid文件
-h 显示帮助 
 
如果要结束Memcache进程,执行:  kill `cat /tmp/memcached.pid` 
memcache的运行状态可以方便的用stats命令显示。
首先用 telnet 127.0.0.1 11211这样的命令连接上memcache,然后 直接输入stats就可以得到当前memcache的状态
服务器STATS信息
参数 值 描述
pid 7862 memcache服务器进程ID
uptime 12617972 服务器已运行秒数
time 1320756409 服务器当前Unix时间戳
version 1.4.5 memcache版本
pointer_size 64 操作系统指针大小
rusage_user 1.731736 进程累计用户时间
rusage_system 251.421778 进程累计系统时间
curr_connections 41 当前连接数量
total_connections 848 Memcached运行以来连接总数
connection_structures 46 Memcached分配的连接结构数量
cmd_get 164377 get命令请求次数
cmd_set 58617 set命令请求次数
cmd_flush 0 flush命令请求次数
get_hits 105598 get命令命中次数
get_misses 58779 get命令未命中次数
delete_misses 0 delete命令未命中次数
delete_hits 0 delete命令命中次数
incr_misses 0 incr命令未命中次数
incr_hits 0 incr命令命中次数
decr_misses 0 decr命令未命中次数
decr_hits 0 decr命令命中次数
cas_misses 0 cas命令未命中次数
cas_hits 0 cas命令命中次数
cas_badval 0 使用擦拭次数
auth_cmds 0 认证命令处理的次数
auth_errors 0 认证失败数目
bytes_read 262113283 读取总字节数
bytes_written 460023263 发送总字节数
limit_maxbytes 536870912 分配的内存总大小(字节)
accepting_conns 1 服务器是否达到过最大连接(0/1)
listen_disabled_num 0 失效的监听数
threads 4 当前线程数
conn_yields 0 连接操作主动放弃数目
bytes 1941693 当前存储占用的字节数
curr_items 476 当前存储的数据总数
total_items 58617 启动以来存储的数据总数
evictions 0 LRU释放的对象数目
reclaimed 48830 已过期的数据条目来存储新数据的数目

服务器SETTINGS信息
参数 值 描述
maxbytes 536870912 最大字节数限制(0无限制)
maxconns 1024 允许最大连接数
tcpport 11211 TCP端口
udpport 11211 UDP端口
inter NULL IP地址
verbosity 0 日志(0=none,1=som,2=lots)
oldest 0 最老对象过期时间
evictions on 是否禁用LRU(on/off)
domain_socket NULL Socket域名
umask 700 创建Socket的掩码
growth_factor 1.25 增长因子
chunk_size 48 chunk大小(key+value+flags)
num_threads 4 线程数(默认4,可通过-t参数设置)
stat_key_prefix : stats分隔符
detail_enabled no 显示stats细节信息(yes/no)
reqs_per_event 20 最大IO吞吐量(每event)
cas_enabled yes 是否启用CAS(yes/no,-C禁用)
tcp_backlog 1024 TCP监控日志
binding_protocol auto-negotiate 绑定协议
auth_enabled_sasl no 是否启用SASL验证(yes/no)
item_size_max 1048576 数据最大尺寸
 

stats 显示服务器信息、统计数据等

stats reset 清空统计数据

stats malloc 显示内存分配数据

stats maps 这个不太确定,看源代码是把/proc/self/maps的数据显示出来。这个文件的数据貌似是动态库的映射地址?

stats cachedump slab_id limit_num 显示某个slab中的前limit_num个key列表,显示格式如下 ITEM key_name [ value_length b; expire_time|access_time s] 其中,memcached 1.2.2及以前版本显示的是 访问时间(timestamp) 1.2.4以上版本,包括1.2.4显示 过期时间(timestamp) 如果是永不过期的key,expire_time会显示为服务器启动的时间

 

stats cachedump 7 2 ITEM copy_test1 [250 b; 1207795754 s] ITEM copy_test [248 b; 1207793649 s]

stats slabs 显示各个slab的信息,包括chunk的大小、数目、使用情况等

stats items 显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数)

stats detail [on|off|dump] 设置或者显示详细操作记录 参数为on,打开详细操作记录 参数为off,关闭详细操作记录 参数为dump,显示详细操作记录(每一个键值get、set、hit、del的次数) stats detail dump PREFIX copy_test2 get 1 hit 1 set 0 del 0 PREFIX copy_test1 get 1 hit 1 set 0 del 0 PREFIX cpy get 1 hit 0 set 0 del 0

 

猜你喜欢

转载自xiaohu7978.iteye.com/blog/2034448
今日推荐