一、get
- get命令获取存储在key(键)中的value(数据值) 。
- 如果key不存在,则返回空。
格式
- 基本语法格式如下:
get key
- 多个key使用空格隔开,如下:
get key1 key2 key3
演示案例
- 设置一个key,如下所示:
set runoob 0 900 9 memcached
- 获取该key的值:
get runoob
二、gets
- gets 命令获取带有CAS令牌的value(数据值) 。
- 如果key不存在,则返回空。
格式
- 基本语法格式如下:
gets key
- 多个key使用空格隔开,如下:
gets key1 key2 key3
演示案例
- 设置一个key,如下所示:
set runoob 0 900 9 memcached
- 获取该key的cas_token参数,值为19
gets runoob
三、delete
- delete命令用于删除已存在的key(键)。
格式
delete key [noreply]
- 参数说明如下:
- key:键值 key-value 结构中的key,用于查找缓存值。
- noreply(可选):该参数告知服务器不需要返回数据。
输出信息
- DELETED:删除成功。
- ERROR:语法错误或删除失败。
- NOT_FOUND:key 不存在。
演示案例
- 设置一个名为runoob的key:
set runoob 0 900 9 memcached
- 获取key的内容:
get runoob
- 删除该key:
delete runoob
- 再次获取key:
get runoob
- 再次删除该key
delete runoob
四、incr、decr
- incr与decr命令用于对已存在的 key(键) 的数字值进行自增或自减操作。
- incr与decr命令操作的数据必须是十进制的32位无符号整数。
incr格式
incr key increment_value
- 参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- increment_value: 增加的数值。
演示案例
- 设置一个key,值为10:
set visitors 0 900 2 10
- 获取key的值:
get visitors
- 将key的值增加5:
incr visitors 5
- 再次获取key的值:
get visitors
decr格式
decr key decrement_value
- 参数说明如下
- key:键值 key-value 结构中的 key,用于查找缓存值。
- decrement_value: 减少的数值。
演示案例
- 设置一个key,值为10:
set visitors 0 900 2 10
- 获取key的值:
get visitors
- 将key的值减去5:
decr visitors 5
- 再次获取key的值:
get visitors
输出信息
- NOT_FOUND:key 不存在。
- CLIENT_ERROR:自增/自减值不是对象。
- ERROR:其他错误,如语法错误等。
应用场景(秒杀功能)
- 一个人下单,要牵涉数据库读取,写入订单,更改库存,及事务要求,对于传统型数据库来说,压力是巨大的。可以利用 memcached 的 incr/decr 功能,在内存存储 count 库存量,秒杀 1000 台 每人抢单主要在内存操作,速度非常快,抢到 count<=1000 的号人,得一个订单号,再去另一个页面慢慢支付