Memcached简介
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。
Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。
Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。
本质上,它是一个简洁的key-value存储系统。
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
安装
Linux下安装memcached
-
首先要先安装libevent库
yum install libevent libevent-deve
自动下载安装(Redhat/Fedora/Centos) - 自动安装
yum install memcached
- memcached启动
service memcached start
- memcached 停止
service memcached stop
Mac下安装memcached
- brew 安装
brew install memcached
- 启动停止命令
brew services start memcached brew services stop memcached
-
安装客户端
brew install libmemcached
- 安装telnet
brew install telnet
启动memcached 命令参数如下
memcached 启动服务器
memcached -p 11211 -m 64m -d -vv
-p 监听的端口 -l 连接的ip地址,默认是本机 -d start 启动memcached服务 -d stop|shutdown 关闭和正在运行的memcached服务 -d install 安装memcached服务 -u 以root身份运行 -m 最大内存的实用, 单位MB -c 最大同时连接数 -h 显示帮助
Memcached连接
telnet HOST PORT
telnet 127.0.0.1 11211
Memcached 使用
存储命令
set命令
语法:
set 命令的基本语法格式如下:
set key flags exptime bytes [noreply]
value
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
- exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
- bytes:在缓存中存储的字节数
- noreply(可选): 该参数告知服务器不需要返回数据
- value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
实例
以下实例中我们设置:
key → runoob
flag → 0
exptime → 900 (以秒为单位)
bytes → 9 (数据存储的字节数)
value → memcached
set runoob 0 900 9
memcached
STORED
get runoob
VALUE runoob 0 9
memcached
END
输出 如果数据设置成功,则输出:
STORED `
输出信息说明:
- STORED:保存成功后输出。
- ERROR:在保持失败后输出。
add命令
语法:
add 命令的基本语法格式如下:
add key flags exptime bytes [noreply]
value
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
- exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
- bytes:在缓存中存储的字节数
- noreply(可选): 该参数告知服务器不需要返回数据
- value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
实例
以下实例中我们设置:
- key → new_key
- flag → 0
- exptime → 900 (以秒为单位)
- bytes → 10 (数据存储的字节数)
- value → data_value
add new_key 0 900 10
data_value
STORED
get new_key
VALUE new_key 0 10
data_value
END
输出
如果数据添加成功,则输出:
STORED
输出信息说明:
- STORED:保存成功后输出。
- NOT_STORED:在保持失败后输出。
查找命令
get命令
Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。
get key
gets命令
Memcached gets 命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空。 gets 命令的基本语法格式如下:
gets key
多个 key 使用空格隔开,如下:
gets key1 key2 key3
删除命令
delete命令
Memcached delete 命令用于删除已存在的 key(键)。
delete key [noreply]
参数说明如下:
- key:键值 key-value 结构中的 key,用于查找缓存值。
- noreply(可选): 该参数告知服务器不需要返回数据
高级
Memcache 查看列出所有key方法
stats items // 列出所有keys
stats cachedump 7 0 // 通过itemid获取key
//列出的items id,本例中为7,第2个参数为列出的长度,0为全部列出
get key //通过get获取key值