Memcached

memcached: udp/11211  , tcp/11211

  • 优点:是一款kv存储,能够快速的对数据进行查询,对过期数据进行惰性管理,即检查到过期数据(LRU),将其标记为过期,但不会清理,当下次有新的数据需要缓存这部分空间的时候,直接覆盖掉这部分就可以了,因此不会对过期数据采取动作而消耗性能
  • 缺点:kv缓存的数据模式过于单一,不能处理更复杂的数据格式,并且无存储功能,默认没有认证功能,通常都是在系统内部完成数据的存储,但是可以通过sasl完成认证功能
INSTALL
  • yum   install  -y  memcached 即可,已收录到centos的base源中了
Use
  • telnet  127.0.0.1 11211
  • format:   command   flag  timeout   datasize
  • command:add,append,prepend,delete
eg1:

# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
add 1key 0 300 5
hello
STORED
get 1key
VALUE 1key 0 5
hello
END
append 1key 0 300 2
hi
STORED
get 1key
VALUE 1key 0 7
hellohi
END
prepend 1key 0 30 3
use
STORED
get 1key
VALUE 1key 0 10
usehellohi
END
get 1key
VALUE 1key 0 10
usehellohi
END
add counts 0 300 2
20
STORED
incr counts 2
22
decr counts 1
21
stats items
STAT items:1:number 2
STAT items:1:age 107
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 2
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
END
quit


总结: 
    存储类命令:set,add,pretent,append,replace
    获取类命令:get ,delete,incr/decr
   统计类命令:stats ,stats items,stats slabs,stats sizes
   清理类命令:flush_all

eg2:

# memcached -f 2 -vv -u root      ///-f  指定增长因子,默认为1.25倍,即在指定的缓存空间中,指定每个chunk的增长因子,以避免空间的浪费,或者chunk的种类,两者取一
slab class   1: chunk size        96 perslab   10922
slab class   2: chunk size       192 perslab    5461
slab class   3: chunk size       384 perslab    2730
slab class   4: chunk size       768 perslab    1365
slab class   5: chunk size      1536 perslab     682
slab class   6: chunk size      3072 perslab     341
slab class   7: chunk size      6144 perslab     170
slab class   8: chunk size     12288 perslab      85
slab class   9: chunk size     24576 perslab      42
slab class  10: chunk size     49152 perslab      21
slab class  11: chunk size     98304 perslab      10
slab class  12: chunk size    196608 perslab       5
slab class  13: chunk size    393216 perslab       2
slab class  14: chunk size   1048576 perslab       1

LAMP + memcached
yum install -y httpd   php  php-pecl-memcache  memcached
[root@zhuyuan src]# cat /var/www/html/mem.php
cat /var/www/html/mem.php
<?php
 $mem = new Memcache;
 $mem-> connect('127.0.0.1',11211) or die ("could not connetc.");
 $version = $mem->getVersion();
 echo "server's version is: $version ";
 $mem->set('putty','sunset nimo',0,300);
 
?>

用浏览器访问地址,http://172.16.52.59/mem.php
]#  telnet 127.0.0.1 11211
telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get putty
VALUE putty 0 11
sunset nimo

分布式缓存:
      取膜法:一旦增加新的memcached服务器容易产生雪崩效应
      一致性哈希:除了解决取膜法的蝴蝶效应,还解决哈希环偏斜,将同一个节点虚拟映射分散到环上的多处,因此虚拟节点可以解决哈希环偏斜

若想以c语言来连接memcached
   yum list all |grep "memcache"
   libmemcached就是memcache的c库
   yum install -y libmemcached
   rpm -ql libmemcached|less     
   ///可以看到提供了很多命令,比如memping检查主机与memcached连接服务是否正常
  ]# memping --servers=172.16.52.59    
  ///因为本机的ip地址为59,并且连接了memcached,因此无报错
  ]# memping --servers=172.16.52.60
Failed to ping 172.16.52.60:11211 CONNECTION FAILURE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值