Memcached学习笔记之memcached命令

memcache命令

memcached命令分为增删改查统计5类

1、增:add往内存中增加一行新记录

语法:add key flag expire length
key 给值起一个独特的名字
flag 标志,要求为一个正整数
expire 有效期
length 缓存的长度(字节为单位)

flag的意义:
  memcached基本文本协议,传输的东西,理解成字符串来存储。
  比如,让你存一个php对象,和一个php数组,怎么存,解决办法就是序列化成字符串,往出取的时候,自然还要反序列化成对象/数组/json的格式,这时候,flag的意义就体现出来了,例如,1 就是字符串,2 反转成数组,3 反序列化对象...
expire的意义:
  设置缓存的有效期,有3中格式
  1、设置秒数,从指定开始数,第n秒后失效
  2、时间戳,到指定的时间戳后失效。比如某一团购网站,缓存的某团到中午12:00失效,add key 0 时间戳 6
  3、设为0,不自动失效。

注:设为0,不代表永久有效,memcached默认最长的有效期为30天,所以,及时设置为0,30天后也会失效,也可能等不到30天,就会被新数据踢出去

2、删 delete

语法:delete key
删除指定的key

3、替换 replace

语法:replace key flag expire length
参数和add完全一样,替换掉已有key的值,值不存在则不会执行命令

4、查询 get

语法:get key
返回key的值

5、设置和修改值 set

参数和add,replace一样,但功能不一样,当key不存在时,则执行添加,当key存在时,则执行修改,所以,set相当于add replace两者的功能

6、增加/减少值的大小 incr/decr

语法:incr/decr key num

示例:

set age 1 0 2
25
STORED
get age
VALUE age 1 2
25
END
incr age 10
35
incr age
ERROR
decr age 10
25

应用场景-----秒杀功能

一个人下单,要牵涉到数据库读取,写入订单,更改库存,及事务要求,对传统型数据库来说,压力是巨大的。
可以利用memcached的incr/decr功能,在内存中存储count库存量,秒杀1000台,每人抢单主要在内存操作,速度非常快,抢到count<=1000的人,得到一个订单号,再去另一个页面慢慢支付。

7、统计 stats

把memcached当前的运行信息统计出来

缓存有一个重要的概念:命中率。命中率是指:(查询到数据的次数/查询总数)100%,如上,13/(13+7) ≈ 60%的命中率*

8、清空所有的的存储对象 flush_all

posted @ 2017-02-22 14:51  FullStackMe  阅读(98)  评论(0)    收藏  举报