memcached介绍
分布式缓存组件,数据类型比较单一,实现分布式通过客户端的分布式算法来实现的。
memcached常用操作
1.memcached 启动
memcached -p(端口) -m(内存大小) -d(守护内存)
client 连接使用 telnet 127.0.0.1 port
2.memcached 数据的操作
memcached相当以一个map,进行get set操作
set key flags exptime bytes
value // 设置值get key
add key flags exptime bytes
valuereplace key flags exptime bytes
append key flags exptime bytes
prepend key flags exptime bytes
cas key flags exptime bytes unique_cas_token //check and set 通过token改变
gets key //可以查看token
delete key
incr/decr key increment_value
3.memcached统计命令
stats //查看全局信息
stats items //查看每个slab中存放的条目的数量和存储时长
stats slabs //查看每个slab的信息
flush_all //清除所有的键
memcached内存分配机制
Slab Allocation 机制:整理内存以便重复使用
Slab Allocation 的原理相当简单。将分配的内存分割成各种尺寸的块
(chunk),并把尺寸相同的块分成组(chunk 的集合)
将内存根据chunk大小分成不同的slab级别,分配的内存使用完毕后不释放。空闲出来给新的key使用
memcached分布式算法
使用Consistent Hashing ,减少增加或者减少服务器节点对缓存key的影响