Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。                                                                                                            它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
       Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

特点

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

协议

memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议
因此,通过telnet也能在memcached上保存数据、取得数据。
 
 

事件处理

libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。关于事件处理这里就不再详细介绍,可以参考Dan Kegel的The C10K Problem。
 

存储方式

为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。
由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失
另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。
memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

通信分布式

memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。
各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。
 
安装:
这里使用 yum安装
memcache 依赖于 libevent驱动,请先安装libevent
# yum install libevent libevent-devel
# yum install memcached
配置启动:
# memcached -d -m 10 -p 12000 -c 256 -u root
 
# memcached --help

memcached 1.5.3
-p, --port=<num> TCP port to listen on (default: 11211)                        监听端口 (tcp)
-U, --udp-port=<num> UDP port to listen on (default: 11211, 0 is off)   监听端口   (udp)
-s, --unix-socket=<file> UNIX socket to listen on (disables network support)
-A, --enable-shutdown enable ascii "shutdown" command       允许客户端发送shutdown 关闭memcache进程
-a, --unix-mask=<mask> access mask for UNIX socket, in octal (default: 0700)
-l, --listen=<addr> interface to listen on (default: INADDR_ANY)      监听地址、默认所有
-d, --daemon run as a daemon   以守护进程方式运行
-r, --enable-coredumps maximize core file limit
-u, --user=<user> assume identity of <username> (only when run as root)   仅当root启动时 要指定运行用户
-m, --memory-limit=<num> item memory in megabytes (default: 64 MB)   设置可使用内存大小、默认64M
-M, --disable-evictions return error on memory exhausted instead of evicting
-c, --conn-limit=<num> max simultaneous connections (default: 1024)   允许多少客户端连接
-k, --lock-memory lock down all paged memory
-F, --disable-flush-all disable flush_all command     禁止客户端使用刷新命令

-v, --verbose verbose (print errors/warnings while in event loop)
-vv very verbose (also print client commands/responses)
-vvv extremely verbose (internal state transitions)
-h, --help print this help and exit
-V, --version print version and exit

 
 使用语法:

五种基本 memcached 命令执行最简单的操作。这些命令和操作包括:

set     强制新增
add 新增
replace 替换
get 取值
delete 删除
 

前三个命令是用于操作存储在 memcached 中的键值对的标准修改命令。它们都非常简单易用,且都使用如下 所示的语法:

command <key> <flags> <expiration time> <bytes>
<value>
参数说明如下:
command set/add/replace
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节数
value 存储的值(始终位于第二行)
get 取值  delete 删除键值  更简单
get|delete key 

查看状态   stats

清理缓存中所有键值  flush_all

追加数据(原数据后)  append

追加数据(原数据前)  prepend

连接:
许多语言都实现了连接memcached的客户端,其中以Perl、PHP为主。仅仅memcached网站上列出的语言就有
· Perl
· PHP
· Python
· Ruby
· C#
· C/C++
· Lua
 
这里简单使用 telnet和nc 来连接memcache
# telnet localhost 11211
Trying 127.0.0.1
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
set foo 0 0 3                   (保存命令)
bar                                   (数据)
STORED                        (结果)
get foo                            (取值)
VALUE foo 0 3              (数据)
bar                                   (数据)

Memcache 安装配置使用的更多相关文章

  1. Memcache安装配置

    介绍 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调 ...

  2. Linux Memcache 安装配置

    mkdir /soft cd /soft wget http://memcached.org/files/memcached-1.4.29.tar.gz tar -zxvf memcached-.ta ...

  3. Windows下MemCache多端口安装配置

    Windows下MemCache环境安装配置的文章很多,但大部分都是用的默认端口11211,如何修改默认端口.如何在一台服务器上配置多个MemCache端口?这正式本文要解决的问题. 1.从微软官网下 ...

  4. php5.4之分布式缓存memcache(windows7下安装配置)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qq1355541448/article/details/36663203 使用理由:就是为了频繁查询 ...

  5. Windows下的Memcache安装 linux下的Memcache安装

    linux下的Memcache安装: 1. 下载 memcache的linux版本,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent. 官方网址:http ...

  6. linux操作系统-memcache安装

    安装配置 1. 安装libevent # tar zxf libevent-1.4.6-stable.tar.gz # cd libevent-1.4.6-stable # ./configure # ...

  7. Windows安装配置php+memcached的方法

    Windows下Memcached的安装配置方法 1.将第一个包解压放某个盘下面,比如在c:\memcached. 2.在终端(也即cmd命令界面)下输入 'c:\memcached\memcache ...

  8. Windows下memcache安装使用

    Windows下Memcache安装 随着时间的推移,网上现在能找到的在 Windows下安装 Memcache 的文档大多已经过时.雪峰这里再简要介绍一下当下最新版的安装和配置方法. Memcach ...

  9. Memcache安全配置

    Memcache安全配置 瞌睡龙 · 2014/01/20 17:59 0x00 Memcache简介 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash ...

随机推荐

  1. MySQL/数据库 知识点总结

    书籍推荐 <SQL基础教程(第2版)> (入门级) <高性能MySQL : 第3版> (进阶) 文字教程推荐 SQL Tutorial (SQL语句学习,英文).SQL Tut ...

  2. 求1-n 中与 m 互质的素因子 (容斥原理)

    ll prime[100]; ll cnt; void getprime(){ cnt = 0; ll num = m; for(ll i = 2; i*i <= m; i++){ // sqr ...

  3. kubernetes concepts -- Pod Overview

    This page provides an overview of Pod, the smallest deployable object in the Kubernetes object model ...

  4. @ControllerAdvice自定义异常统一处理

    正常来说一个系统肯定有很多业务异常.而这些业务异常的信息如何返回给前台呈现给用户.比如用户的某些操作不被允许,需要给用户提示. Spring 提供了@ControllerAdvice这个注解,这个注解 ...

  5. 1114 记录一点点吧 RP Axure

  6. 现在啊还不太清楚 nodejs和coffeescript 的关系

    我怎么会思考这个问题,今天看到用coffeescript做的一个服务引导 挺好 看博客里提 安装node之后 呢 npm 可以安装coffeescript 难道 coffee 是 node的 一个方言 ...

  7. Java程序员学习Go语言—之一

    转载:https://www.luozhiyun.com/archives/206 GOPATH 工作空间 GOPATH简单理解成Go语言的工作目录,它的值是一个目录的路径,也可以是多个目录路径,每个 ...

  8. HLS协议

    今天来介绍一下HLS协议,这个协议是由苹果公司提出并推广开来的.来一段维基百科的定义. HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议.是 ...

  9. HTTP访问控制模块(HTTP Access)

    ·摘要这个模块提供简单的基于主机的访问控制.ngx_http_access_module这个模块可以详细的检查客户端IP,并且按顺序执行第一条匹配的规则.如下例: location / {  deny ...

  10. 我的一个react路由之旅(步骤及详图)

    今天开始react一个重要部分的xiao~习,路由~(过程截图,最后附代码) 以下代码只能骗糊涂蛋子,没错,就是我自己,不要打算让我敲出多高级的东西~ 理论性知识几乎没有,请不要打算让我给你说原理啥的 ...