memcached简介

姓名:穆培婷

学号:17101223414

专业:软件工程

本文转载自:https://baike.baidu.com/item/memcached/1625373?fr=aladdin

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

【嵌牛鼻子】:缓存 负载均衡  分布式

【嵌牛正文】:

1、memcached基本概念

Memcached是danga的一个项目,最早是LiveJournal 服务的,最初为了加速 LiveJournal 访问速度而开发的,后来被很多大型的网站采用。 官方网站: www.danga.com  和 memcached.org

Memcached是一个高性能的分布式的内存对象缓存系统,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

LiveJournal :国外的sns社交网站,网站的访问量很大的时候,就不行了,后来成立了一个社区专门解决访问量大的问题,即memcache.

danga:www.danga.com

总体介绍:

memcached是一种缓存技术, 他可以把你的数据放入内存,从而通过内存访问提速,因为内存最快的, memcached技术的主要目的提速,

(先访问数据库–增加固态后–访问页面(磁盘)—访问内存)

2、使用memcached给我们带来的好处?

流程:在浏览器提交学生id,将速度做到极致,第一种方法:比较传统的直接查数据库。第二种方法:使用真静态,在查询学生成绩的时候,不仅有数据库还有学生成绩页面,当浏览器访问的时候,直接访问学生成绩页面,将结果返回。第三种方法:将学生信息存入数据库的同时将数据放入内存,当另一个人访问的时候,先去内存中找,内存中有直接读出即可。第四种方法:寄存器(很贵)

三种方案的比较

1. 数据库 2. 页面静态化 3. memcached 缓存技术

3、特征

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

· 协议简单

· 基于libevent的事件处理

· 内置内存存储方式

· memcached不互相通信的分布式

4、协议

memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议。

因此,通过telnet也能在memcached上保存数据、取得数据。下面是例子。

$ 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 (数据)

5、事件处理

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

6、存储方式

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

7、通信分布式

memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。本文也将介绍memcached的分布式。

8、功能

一个用PHP编写的可视化的MemCached管理系统

MemAdmin是一款可视化的Memcached管理与监控工具,使用PHP开发,体积小,操作简单。

主要功能:

服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新

服务器性能监控:GET、DELETE、INCR、DECR、CAS等常用操作命中率实时监控

支持数据遍历,方便对存储内容进行监视

支持条件查询,筛选出满足条件的KEY或VALUE

数组JSON等序列化字符反序列显示

兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外)

支持服务器连接池,多服务器管理切换方便简洁

9、memcached连接

我们可以通过 telnet 命令并指定主机ip和端口来连接 Memcached 服务。

语法

《memcached简介》

命令中的HOSTPORT为运行 Memcached 服务的 IP 和 端口。

实例

以下实例演示了如何连接到 Memcached 服务并执行简单的 set 和 get 命令。

本实例的 Memcached 服务运行的主机为 127.0.0.1(本机) 、端口为 11211。

《memcached简介》

    原文作者:陪你听风_ea30
    原文地址: https://www.jianshu.com/p/8f6c6f6c73a5
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞