• PHP和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    //存在

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

  • 相关阅读:
    购物车
    加载网格X文件代码(Unicode版本)
    金字塔代码
    纹理贴图案例
    绘制立方体
    移动端H5开发问题(html2canvas、video、audio)
    opencvpython图像处理学习笔记1
    jmeter报错o.a.j.JMeter: Uncaught exception问题排查
    记一次测试周报
    PHP 浮点数计算精度问题
  • 原文地址:https://www.cnblogs.com/lzijiangg/p/11978106.html
Copyright © 2020-2023  润新知