1. 安装

wget http://memcached.org/latest 下载最新版本
tar -zxvf memcached-1.x.x.tar.gz 解压源码
cd memcached-1.x.x 进入目录
./configure --prefix=/usr/local/memcached 配置
make && make test 编译
sudo make install 安装

2. 配置说明

启动方式: /usr/local/bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid

  • -d 是启动一个守护进程;
  • -m 是分配给Memcache使用的内存数量,单位是MB;
  • -u 是运行Memcache的用户;
  • -l 是监听的服务器IP地址,可以有多个地址;
  • -p 是设置Memcache监听的端口,,最好是1024以上的端口;
  • -c 是最大运行的并发连接数,默认是1024;
  • -P 是设置保存Memcache的pid文件。
    访问方式:telnet IP PORT

3. 命令

1.设置命令

1、set:如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。

set key flags exptime bytes [noreply] 
value

2、add:如果 add 的 key 已经存在,则不会更新数据(过期的 key 会更新),之前的值将仍然保持相同,并且您将获得响应 NOT_STORED。

add key flags exptime bytes [noreply]
value

3、replace:如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED。

replace key flags exptime bytes [noreply]
value

4、append:Memcached append 命令用于向已存在 key(键) 的 value(数据值) 后面追加数据 。

append key flags exptime bytes [noreply]
value

5、prepend:Memcached prepend 命令用于向已存在 key(键) 的 value(数据值) 前面追加数据 。

prepend key flags exptime bytes [noreply]
value

6、cas:Memcached CAS(Check-And-Set 或 Compare-And-Swap) 命令用于执行一个"检查并设置"的操作.它仅在当前客户端最后一次取值后,该key 对应的值没有被其他客户端修改的情况下, 才能够将值写入。检查是通过cas_token参数进行的, 这个参数是Memcach指定给已经存在的元素的一个唯一的64位值。

cas key flags exptime bytes unique_cas_token [noreply]
value

cas tp 0 900 9
ERROR             #缺少 token

cas tp 0 900 9 2
memcached
NOT_FOUND         #键 tp 不存在

set tp 0 900 9
memcached
STORED

gets tp
VALUE tp 0 9 1
memcached
END

cas tp 0 900 5 1
redis
STORED

get tp
VALUE tp 0 5
redis
END

参数说明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。
  • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
  • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
  • bytes:在缓存中存储的字节数
  • unique_cas_token通过 gets 命令获取的一个唯一的64位值。
  • noreply(可选): 该参数告知服务器不需要返回数据
  • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
2.查找命令

1、get:Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。

get key
get key1 key2 key3

2、gets:Memcached gets 命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空。

gets key
gets key1 key2 key3

3、delete:Memcached delete 命令用于删除已存在的 key(键)。

delete key [noreply]

4、incr/decr:Memcached incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作。incr 与 decr 命令操作的数据必须是十进制的32位无符号整数。如果 key 不存在返回 NOT_FOUND,如果键的值不为数字,则返回 CLIENT_ERROR,其他错误返回 ERROR。

incr key increment_value
value
3.统计命令

1、stats:Memcached stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。

stats

2、stats items:Memcached stats items 命令用于显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)。

stats items

3、stats slabs:Memcached stats slabs 命令用于显示各个slab的信息,包括chunk的大小、数目、使用情况等。

stats slabs

4、stats sizes:Memcached stats sizes 命令用于显示所有item的大小和个数。该信息返回两列,第一列是 item 的大小,第二列是 item 的个数。

stats sizes

5、flush_all:Memcached flush_all 命令用于清理缓存中的所有 key=>value(键=>值) 对。该命令提供了一个可选参数 time,用于在制定的时间后执行清理缓存操作。

flush_all [time] [noreply]

6、stats detail [on|off|dump]:设置或者显示详细操作记录

stats detail [on|off|dump]

7、stats cachedump slab_id limit_num:显示某个slab中的前limit_num个key列表.

stats cachedump 7 2

8、stats reset:清空统计数据

stats reset
4.其他信息

1、统计信息(stats)

参数 描述
pid 1700 memcache服务器进程ID
uptime 5335604 服务器已运行秒数
time 1557036895 服务器当前Unix时间戳
version 1.5.10 memcache版本
libevent 2.0.21-stable libevent版本
pointer_size 64 操作系统指针大小
rusage_user 805.137191 进程累计用户时间
rusage_system 460.201782 进程累计系统时间
max_connections 256
curr_connections 3 当前连接数量
total_connections 7742 Memcached运行以来连接总数
rejected_connections 0
connection_structures 5 Memcached分配的连接结构数量
reserved_fds 20 内部使用的FD数
cmd_get 6977 get命令请求次数
cmd_set 193 set命令请求次数
cmd_flush 0 flush命令请求次数
cmd_touch 0 touch命令请求次数
get_hits 6767 get命令命中次数
get_misses 210 get命令未命中次数
get_expired 1
get_flushed 0
delete_misses 4 delete命令未命中次数
delete_hits 4 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 使用擦拭次数
touch_hits 0 touch命令命中次数
touch_misses 0 touch命令未命中次数
auth_cmds 0 认证命令处理的次数
auth_errors 0 认证失败数目
bytes_read 9227571 读取总字节数
bytes_written 63626954 发送总字节数
limit_maxbytes 67108864 分配的内存总大小(字节)
accepting_conns 1 接受新的连接
listen_disabled_num 0 失效的监听数
time_in_listen_disabled_us 0
threads 4 当前线程数
conn_yields 0 连接操作主动放弃数目
hash_power_level 16 hash表等级
hash_bytes 524288 当前hash表大小
hash_is_expanding 0 hash表正在扩展
slab_reassign_rescues 0
slab_reassign_chunk_rescues 0
slab_reassign_evictions_nomem 0
slab_reassign_inline_reclaim 0
slab_reassign_busy_items 0
slab_reassign_busy_deletes 0
slab_reassign_running 0
slabs_moved 0
lru_crawler_running 0
lru_crawler_starts 384795
lru_maintainer_juggles 32123450
malloc_fails 0
log_worker_dropped 0
log_worker_written 0
log_watcher_skipped 0
log_watcher_sent 0
bytes 1714945 当前存储占用的字节数
curr_items 6 当前存储的数据总数
total_items 193 启动以来存储的数据总数
slab_global_page_pool 0
expired_unfetched 9 已过期但未获取的对象数目
evicted_unfetched 0 已驱逐但未获取的对象数目
evicted_active 0
evictions 0 LRU释放的对象数目
reclaimed 171 已过期的数据条目来存储新数据的数目
crawler_reclaimed 1
crawler_items_checked 6406
lrutail_reflocked 3584
moves_to_cold 6295
moves_to_warm 6104
moves_within_lru 258
direct_reclaims 0
lru_bumps_dropped 0

2、区块信息(stats slabs)

参数 描述
active_slabs 10 slab数量
total_malloced 11534336 总内存数量

选择内存区块:
SLAB : 1

参数 描述
chunk_size 96 chunk大小(byte)
chunks_per_page 10922 每个page的chunk数量
total_pages 1 page数量
total_chunks 10922 chunk总数量(chunks_per_page*total_pages)
used_chunks 0 已被分配的chunk数量
free_chunks 10922 过期数据空出的chunk数
free_chunks_end 0 从未被使用过的chunk数
mem_requested 0 请求存储的字节数
get_hits 2 get命令命中数
cmd_set 2 set命令请求数
delete_hits 0 delete命令命中数
incr_hits 0 incr命令命中数
decr_hits 0 decr命令命中数
cas_hits 0 cas命令命中数
cas_badval 0 cas数据类型错误数
touch_hits 0 touch命令命中数

3、ITEMS信息(stats items)

参数 描述
number 1 该slab中对象数(不包含过期对象)
number_hot 0
number_warm 0
number_cold 1
age_hot 0
age_warm 0
age 284 LRU队列中最老对象的过期时间
evicted 0 LRU释放对象数
evicted_nonzero 0 设置了非0时间的LRU释放对象数
evicted_time 0 最后一次LRU释放的对象存在时间
outofmemory 0 不能存储对象次数
tailrepairs 0 修复slabs次数
reclaimed 35 使用过期对象空间存储对象次数
expired_unfetched 0 已过期但未获取的对象数目
evicted_unfetched 0 已驱逐但未获取的对象数目
evicted_active 0
crawler_reclaimed 0
crawler_items_checked 850
lrutail_reflocked 484
moves_to_cold 1004
moves_to_warm 968
moves_within_lru 15
direct_reclaims 0
hits_to_hot 1
hits_to_warm 19
hits_to_cold 1012
hits_to_temp 0

results matching ""

    No results matching ""

    results matching ""

      No results matching ""