一:概念

  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. jsonp跨域请求学习笔记

    前言 ajax,用苍白的话赞扬:很好. 我们可以使用ajax实现异步获取数据,减少服务器运算时间,大大地改善用户体验:我们可以使用ajax实现小系统组合大系统:我们还可以使用ajax实现前端的优化.( ...

  2. 自适应 or 移动前端页面布局的问题?

    说出来,还请各位看官不要笑 - -.哥们至今不是很清楚页面的自适应和移动前端页面开发有什么区别 .有幸哪位看官清楚这些的话,希望能不吝赐教 .A.meta        <meta name=& ...

  3. Python新手学习基础之运算符——成员运算与身份运算

    成员运算符 Python里有成员运算符,可以判断一个元素是否在某一个序列中.比如可以判断一个字符是否属于这个字符串,可以判断某个对象是否在这个列表中等等. Python中的成员操作符的使用语法是: o ...

  4. 消息机制2 - Windows程序设计(SDK)005

    消息机制2 让编程改变世界 Change the world by program 内容节选: 关于消息机制,还有三点需要补充: 消息队列是FIFO的形式 WM_PAINT,WM_TIMER 和 WM ...

  5. 关于lambda表达式树

    总而言之: 就是在表达式中没有花括号. IEnumerable<Rect> rectlist3 = rectlist.Select(rect =>newRect(rect.X + 2 ...

  6. 基于htmlparser实现网页内容解析

    基于htmlparser实现网页内容解析 网页解析,即程序自动分析网页内容.获取信息,从而进一步处理信息. 网页解析是实现网络爬虫中不可缺少而且十分重要的一环,由于本人经验也很有限,我仅就我们团队开发 ...

  7. Touch事件

    http://www.cnblogs.com/shawn-xie/archive/2012/12/07/2805582.html 前言 一个触屏网站到底和传统的pc端网站有什么区别呢,交互方式的改变首 ...

  8. FJ省队集训DAY1 T1

    题意:有一堆兔子,还有一个r为半径的圆,要求找到最大集合满足这个集合里的兔子两两连边的直线不经过圆. 思路:发现如果有两个点之间连边不经过圆,那么他们到圆的切线会构成一段区间,那么这两个点的区间一定会 ...

  9. 防止DC电源反接的方法——SS14的用法

    出处:http://blog.ednchina.com/tengjingshu 电源是PCB板的重要部分,每个芯片都需要电源供给.芯片其实是挺脆弱的,只要正负接反得话,大多数就会挂掉,相信很多人都有惨 ...

  10. smarty 从配置文件读取变量

    smarty变量分3种: Variables [变量] Variables assigned from PHP [从PHP分配的变量] Variables loaded from config fil ...