PHP和Memcached - Memcached的介绍及常用命令

1、什么是Memcached

自由开源的,高性能,分布式内存对象缓存系统,分布式是基于客户的缓存系统,服务器之间是不相互通讯的。

2、Memcached的使用场景

  • 储存session。
  • 缓存数据。
  • 解决MySQL数据库主从中继高并发的场景(比如:抢票、订单支付、订单回调、秒杀。

3、常用命令

set命令

 

  • 将value(数据值)储存到key(键)中,默认flags是0,保存时间是time's,如果time=0表示永远(不超过30天),在缓存中的字节长度是bytes,如果设置了noreply=noreply则没有提示输出,在回车后设置value。
  • 如果key存在,则value覆盖。
  • 如果覆盖value,那么key的token_id也会发生改变。
  • 为保证服务的最佳性能,key<512Bytes, value < 1MB。
  • 语法结构:set key flags time bytes noreply(可选) value。
set k1 0 900 5    //语法结构,set key flags time bytes
abcde     //回车后输入value值,注意,字节大小切记设计规范,不符合字节大小的是需要一直输入,直到符合字节大小为止
STORED    //返回状态

 

get / gets命令

  • 获取储存在缓存中的对应key值的value,如果key不存在,返回空。
  • gets多获取一个token_id
  • 语法结构:get / gets key1, key2, key3......
get k1    //语法结构
VALUE k1 0 5    //获取到看k1的配置信息
abcde    //获取到k1的value
END    //结束

现在,我们在看一下gets这个命令

gets k1
VALUE k1 0 5 63    //63就是k1的唯一标识token_id
abcde
END

delete命令

  • 删除一个key
  • 语法结构:delete key
delete k1    //语法结构
DELETED    //删除成功

prepend / append命令

  • 在指定key里面的value前面/后面增加数据
  • 语法结构:prepend / append set key flags time bytes noreply(可选) value
set k1 0 900 5  //设置一个k1,value是world
world
STORED

get k1    //查看一下确实是world
VALUE k1 0 13
world
END

prepend k1 0 900 6    //在k1前面增加hello 
hello 
STORED

append k1 0 900 2    //在k1后面增加 !
 !
STORED

get k1    //查看k1,value是hello world!,注意,字节长度也变成了13
VALUE k1 0 13
hello world !
END

incr/decr命令

  • 对指定的key里面的value自增 / 自减指定数值
  • 必须是整型
  • 支持多线程同步
  • 语法结构:incr / decr key num
set k1 0 900 1    //设置k1value值为5
5
STORED

incr k1 5    //自增5,输出10
10

decr k1 2    //自减2,输出8
8

add命令

  • 跟set命令用法一样
  • 如果key存在,则不能更新value
  • 支持多线程同步
  • 语法结构:add key flags time bytes noreply(可选) value

cas命令

  • 进行token_id进行检查,如果token_id等于key的token_id,则设置value
  • 支持多线程同步
  • 语法结构:cas key flags time bytes token_id noreply(可选) value
set k1 0 900 5    //设置一个k1
abcde
STORED

gets k1    //获取token_id 72
VALUE k1 0 5 72
abcde
END

cas k1 0 900 3 72    //根据token_id进行修改
aaa
STORED    //成功

gets k1    //查看k1  修改成功   token_id变更为了73
VALUE k1 0 3 73
aaa
END

cas k1 0 900 5 70    //使用错误的token_id,无法修改
asdfg
EXISTS    //存在

如有错误请纠正......

 

posted @ 2019-12-03 17:13  Black_King_Bar  阅读(203)  评论(0编辑  收藏  举报