Memcached基础语法

Memcached基础

memcached中的一些参数限制

Key的长度:250字节(二进制协议支持65536个字节)

Value的限制:1M,一般都是存储一些文本,如新闻列表等等这个值足够了

内存的限制:32位下最大设置到2G

如果有30G数据要缓存,一般也不会单实例装30G(不要把鸡蛋装在一个篮子里)

一般建议 开启多个实例(可以在不同的机器,或者同机器不同端口多开几个)

增: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失效

3、设为0,不自动失效

但是设置为0不是永久有效的,编译memcached时,指定一个最长常量默认是30天,所以,即使设为0,30天后也会失效

可能等不到30天,就会被新数据挤出去

 

Replace替换

Replace key flag expire length

参数和add完全一样,不单独写

 

Delete删除

Delete key 

Delete key [time seconds]

加秒数之后,是指,被删除的key,N秒内不能再用,目的是让网站上的页面缓存也代谢完毕

 

Get查询

get key

返回key的值

 

Set是设置和修改值

参数和add,replace一样,但功能不一样

 

add 是在Key不存在时,才能建立此键值

对于已经存在的键,可以用replace进行替换/更改

replace则只能对于已经存在的键做修改,不存在则不成功

set相当于add replace两者功能

 

Incr增长

incr age 1

年龄这个键的值增长1

 

Decr减少

decr age 2

年龄这个键的值减少2

应用场景

秒杀功能:

一个人下单,要牵涉数据库读取,写入订单,更改库存,及事务要求,对于传统型数据库来说。压力是巨大的

可以利用memcached的decr功能,在内存存储count库存量,秒杀1000台

set count 0 0 3
1000
decr count 1

最后到了0,就不能抢了

每个人抢单主要在内存操作,速度非常快

抢到count小于等于1000号的人,得到订单号,再去另外一个页面进行支付

 

stats

统计所有信息

 

flush_all

清空所有存储的对象

(惰性删除)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值