一:概念

  memcached是LiveJournal旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为mixi,hatena,facebook,Vox,LiveJournal等众多服务中 提高Web应用扩展性的重要因素。许多web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大,访问的集中,就会出现RDBMS的负加重,数据库响应恶化,网站显示延迟等重大影响。这是就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。一般的使用目的是:通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度,提高可扩展性。

  下面这张示意图会更好的展示memcached的大体工作流程:

  

二:适用场合

  1.分布式应用。由于memcached本身是基于分布式的系统,所以尤其适合大型的分布式系统。

  2.数据库缓存。数据库往往是网站系统的瓶颈。数据库的大量并发访问,常常造成网站内存溢出。当然我们也可以使用Hibernate的缓存机制。但memcached是基于分布式的,并可独立与网站应用本身,所以更适合大型网站进行应用的额拆分。

  3.服务器间数据共享。举例来讲,我们将网站的登录系统,查询系统拆分为两个应用,放在不同的服务器上,并进行集群,那这个时候用户登录后,登录信息如何从登录系统服务器同步到查询服务器呢?这个时候,我们便可以使用memcached,登录系统后将登录信息缓存起来,查询系统便可以获得登录信息,就像获取本地信息一样。

三:不使用场合

  那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的应用,memcached不会带来任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源。

四:安装(即服务端)

  这里介绍windows环境的安装。

  1.下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached。

  2.在cmd下输入 'c:\memcached\memcached.exe -d install' 安装。

  3.再输入: 'c:\memcached\memcached.exe -d start' 启动。

  以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

五:客户端

  memcached本身是使用C开发的,客户端可以是php,C#,或者Java。我是做Java的,所以这里只介绍基于Java的客户端。

六:范例

  1.加载commons-pool-1.5.6.jar、java_memcached-release_2.6.6.jar、slf4j-api-1.6.1.jar、slf4j-simple-1.6.1.jar

  2.创建memcached工具类:

  

  

  3.创建需要缓存的对象

  

  

  4.创建测试用例

  

  总结:在第二步的时候,我们可以看到是设置一些配置信息和封装一下memcached的存值取值的方法。设置配置信息这块其实可以写成配置文件的,比如.xml文件或.properties文件。这样灵活性就高很多。然后需要注意的几点:第一,memcached是在服务器端的内存中缓存对象的,不是缓存或硬盘;第二,memcached的pool可以连接多个server,String[] servers = {"10.20.185.12:11001","10.20.185.25:11001"};第三,Integer[] weights = {3,7}该配置表示30%的缓存放在第一台服务器,70%的将放在第二台服务器,这样便可以充分利用不同服务器的内存了。

memcached介绍及基本使用的更多相关文章

  1. Memcached介绍

    Memcached介绍 Memcached是一种免费的.开源的.高性能的.分布式对象缓存系统,通过缓解数据库压力,来提高动态web页面的速度. Memcached是一种内存级别的键值对存储,用来存放数 ...

  2. NoSQL、memcached介绍、安装memcached、查看memcached状态

    1.NoSQL 2.memcached介绍     3.安装memcached(二进制包安装) yum install -y memcached libmemcached libevent (若没有安 ...

  3. 分布式缓存memcached介绍,win7环境安装,常用命令set,get,delete,stats, java访问

    一.memcached是什么? 二.memcached不互相通信的分布式 三.安装步骤 四.本文介绍的命令主要包括: 存入命令(Storage commands) 取回命令(Retrieval com ...

  4. memcache与memcached介绍及安装配置

    也许大家一看到Memcache和Memcached会有点晕,这两者有什么关系又有什么区别呢,下面先给大家说下Memcached,Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应 ...

  5. memcached 介绍

    博客园相关文章功能中使用了memcached,在网上搜集了一些memcached方面的文章: memcached完全剖析 分布式缓存系统Memcached简介与实践 Memcached深度分析 自己实 ...

  6. Memcached介绍及相关知识

    memcached简介 1.memcached是一个免费开源的.高性能的,具有分布式内存对象的缓存系统.memcached通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括 ...

  7. 软件官网与memcached介绍

    常见官网 http://www.keepalived.org http://nginx.org/ documentation 模块说明 http://www.apache.org/ https://o ...

  8. MongoDB、Redis和Memcached介绍

    MongoDB MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非 ...

  9. 【转】memcached工作原理介绍

    FROM: http://my.oschina.net/flynewton/blog/8984 官方主页: http://memcached.org/ 面临的问题  对于高并发高访问的Web应用程序来 ...

随机推荐

  1. CSS3 @font-face (webfont)

    先大概介绍下计算机领域常见的字体类型与格式. 点阵字体(Bitmap Font)点阵字体也叫位图字体,其中每个字形都以一组二维像素信息表示.这种文字显示方式于较早前的电脑系统(例如未有图形接口时的 D ...

  2. jquery1.9学习笔记 之层级选择器(三)

    下一个相邻选择器(“prev + next”) 描述:选择所有给出祖先选择器的子孙选择器. 例子: <!doctype html> <html lang='zh'> <h ...

  3. 使用APMServ本地搭建多个网站

    October 27, 2014 使用APMServ本地搭建多个网站教程 把我写好的代码直接粘贴到 httpd.conf 文件的末尾.然后保存就可以了.代码如下: <VirtualHost *: ...

  4. python学习第十五天 -面向对象之继承和多态

    大家都知道面向对象的三大特性:封装,继承,多态.封装特性在上一章节已经讲解过.这一章节主要讲解继承和多态. 继承: 当定义一个类的时候,可以从现有的类进行继承.那么新定义的类可以称为子类,被继承的现有 ...

  5. 文成小盆友python-num4 装饰器,内置函数

    一 .python 内置函数补充 chr()  -- 返回所给参数对应的 ASCII 对应的字符,与ord()相反 # -*- coding:utf-8 -*- # Author:wencheng.z ...

  6. iOS开发 自定义navigationleftItem 之后手势失效的问题

    @property (nonatomic, strong) UIViewController *currentShowVC; //设置代理 self.navigationController.inte ...

  7. build.prop修改详细说明

    用RE进入/system/挂载读写,找到build.prop复制到/sdcarrd进行修改比较保险.也可以挂载读写后,直接选择用文本编辑器打开,进行编辑.乱改有风险,修改需谨慎.1.# begin b ...

  8. (转) 如何命令查找linux系统版本!

    一.查看内核版本命令: 1) [root@SOR_SYS ~]# cat /proc/versionLinux version 2.6.18-238.el5 (mockbuild@x86-012.bu ...

  9. 将日期yyyy-MM-dd转为数字大写的形式

    /** * 将日期转大写 * 例如:2013-05-13转为 二0一三年五月十三日 * @param date * @return */ public static String getDxDate( ...

  10. XML解析之dom4j

    一.XML解析方式有两类:        一]DOM(文档对象模型)            1)一次性将整个XML文件读到内存,形成一颗DOM树        二]SAX(XML的简单API)[sim ...