memcached 知识概括

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统,本质上,它是一个简洁的key-value存储系统。。

Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。

Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。

一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

 

Memcached 官网:http://memcached.org/


特征

memcached作为高速运行的分布式缓存服务器,具有以下的特点。

  • 协议简单
  • 基于libevent的事件处理
  • 内置内存存储方式
  • memcached不互相通信的分布式

支持的语言

许多语言都实现了连接memcached的客户端,其中以Perl、PHP为主。仅仅memcached网站上列出的有:

  • Perl
  • PHP
  • Python
  • Ruby
  • C#
  • C/C++
  • Lua
  • 等等

Memcached 常用命令

  • set 

    Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中。

    如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。

    语法:

    set 命令的基本语法格式如下:

    set key flags exptime bytes [noreply] 
    value 

    参数说明如下:

    • key:键值 key-value 结构中的 key,用于查找缓存值。
    • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
    • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
    • bytes:在缓存中存储的字节数
    • noreply(可选): 该参数告知服务器不需要返回数据
    • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
  • add 

    Memcached add 命令用于将 value(数据值) 存储在指定的 key(键) 中。

    如果 add 的 key 已经存在,则不会更新数据(过期的 key 会更新),之前的值将仍然保持相同,并且您将获得响应 NOT_STORED

    语法:

    add 命令的基本语法格式如下:

    add key flags exptime bytes [noreply]
    value
    

    参数说明如下:

    • key:键值 key-value 结构中的 key,用于查找缓存值。
    • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
    • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
    • bytes:在缓存中存储的字节数
    • noreply(可选): 该参数告知服务器不需要返回数据
    • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
  • replace 

    Memcached replace 命令用于替换已存在的 key(键) 的 value(数据值)

    如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED

    语法:

    replace 命令的基本语法格式如下:

    replace key flags exptime bytes [noreply]
    value

    参数说明如下:

    • key:键值 key-value 结构中的 key,用于查找缓存值。
    • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
    • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
    • bytes:在缓存中存储的字节数
    • noreply(可选): 该参数告知服务器不需要返回数据
    • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
  • append 

    Memcached append 命令用于向已存在 key(键) 的 value(数据值) 后面追加数据 。

    语法:

    append 命令的基本语法格式如下:

    append key flags exptime bytes [noreply]
    value

    参数说明如下:

    • key:键值 key-value 结构中的 key,用于查找缓存值。
    • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
    • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
    • bytes:在缓存中存储的字节数
    • noreply(可选): 该参数告知服务器不需要返回数据
    • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
  • prepend 

    Memcached prepend 命令用于向已存在 key(键) 的 value(数据值) 前面追加数据 。

    语法:

    prepend 命令的基本语法格式如下:

    prepend key flags exptime bytes [noreply]
    value

    参数说明如下:

    • key:键值 key-value 结构中的 key,用于查找缓存值。
    • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
    • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
    • bytes:在缓存中存储的字节数
    • noreply(可选): 该参数告知服务器不需要返回数据
    • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
  • get 

    Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。

    语法:

    get 命令的基本语法格式如下:

    get key

    多个 key 使用空格隔开,如下:

    get key1 key2 key3

    参数说明如下:

    • key:键值 key-value 结构中的 key,用于查找缓存值。
  • gets 

    Memcached gets 命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空。

    语法:

    gets 命令的基本语法格式如下:

    gets key
    

    多个 key 使用空格隔开,如下:

    gets key1 key2 key3
    

    参数说明如下:

    • key:键值 key-value 结构中的 key,用于查找缓存值。
  • delete 

    Memcached delete 命令用于删除已存在的 key(键)。

    语法:

    delete 命令的基本语法格式如下:

    delete key [noreply]

    参数说明如下:

    • key:键值 key-value 结构中的 key,用于查找缓存值。
    • noreply(可选): 该参数告知服务器不需要返回数据
  • incr/decr 

    Memcached incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作。

    incr 与 decr 命令操作的数据必须是十进制的32位无符号整数。

    如果 key 不存在返回 NOT_FOUND,如果键的值不为数字,则返回 CLIENT_ERROR,其他错误返回 ERROR


    incr 命令

    语法:

    incr 命令的基本语法格式如下:

    incr key increment_value

    参数说明如下:

    • key:键值 key-value 结构中的 key,用于查找缓存值。
    • increment_value: 增加的数值。
  • status

 

posted @ 2017-12-01 15:23  泠阿  阅读(101)  评论(0)    收藏  举报