1.Memcached是什么?

  引用维基百科上得简介,Memcached 是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,目前已被诸如Facebook等许多网站使用。这是一套开放源代码软件,以BSD license授权发布。常用于Web应用系统中,许多Web应用都将数据保存在RDBMS中,应用服务器从数据库中读取数据并在浏览器显示,但随着数据量的增大、访问的集中,就会出现RDBMS负担过重、数据库影响恶化、网站显示延迟等重大影响。这时候就是Memcached起作用的时候了,Memcached是高性能的分布式缓冲服务器(其实memcache自身并没有分布式功能,是通过Memcached的客户端实现),memcached使用的最主要的目的就是通过缓存数据库查询结果,减少应用服务器访问数据库的次数,提高Web应用的响应速度、提高可扩展性。

  当然了,Memcached并不是只能用于Web应用,只要你的业务系统需要经常访问数据库,那也可以使用它,我之前就看过有家公司,将Memcached用作他们系统数据交换的中心枢纽即所有收到的新数据都往Memcached里扔,其他系统获取数据,都从Memcached里进行读取,当然感觉这个有点用不太合适。

2.Memcached特点:

  • 协议简单

    Memcached服务与各客户端间的通讯并不适用复杂的XML等格式,而使用简单的基于文本行的协议。因此通过telnet也能再Memcached上进行数据的设置、读取

  • 基于libevent的事件处理(个人才疏学浅不了解)

    想了解的可以Google。

  • 内置内存的存储方式

    为了提高性能,Memcached中所有保存的数据读是基于内存中的,因此在重启Memcached或操作系统时,Memcached中所有的数据都会丢失。另外在Memcached

    所存储的内容达到设定最大值时,就会基于LRU(Least Recently Used)算法删除不适用的缓存。如果你对数据持久性有要求的话,可以考虑Redis。

  • Memcached间不互相通讯

    就向上文中我所提到的,虽然号称是分布式缓存服务,但其实它所谓的分布式功能是通过客户端来实现的,本身Memcached服务并不具备这个功能,因此各个Memcached

    服务间是相对独立的,它们之间没有任何通讯。

3.Memcached的安装与启动

  安装就不多说了,可参照Memcached提供的相关安装说明进行操作,还是比较简单的,我在Ubuntu下也就一个命令安装完毕了。

  至于启动,我在Ubuntu上安装完后,已经自动启动了。正常启动命令是:memcached -p 11211 -m 64m -d,这几个参数的意思如下:

  p 使用的 TCP 端口。默认为 11211

­  m 最大内存大小。默认为 64M

­  d 作为 daemon 在后台启动

  还有其他更多参数,可以通过memcached -h 命令查阅。

Memcached学习(一)的更多相关文章

  1. memcached 学习 1—— memcached+spring配置

    memcached 学习目录: memcached 学习 1—— memcached+spring配置 这几天自己搭建项目环境,解决问题如下: 有关常见的配置这里没有列出,中间遇到的搭建问题比较顺利g ...

  2. memcached学习笔记——存储命令源码分析下篇

    上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制 ...

  3. memcached学习笔记——存储命令源码分析上篇

    原创文章,转载请标明,谢谢. 上一篇分析过memcached的连接模型,了解memcached是如何高效处理客户端连接,这一篇分析memcached源码中的process_update_command ...

  4. Memcached 学习笔记(二)——ruby调用

    Memcached 学习笔记(二)——ruby调用 上一节我们讲述了怎样安装memcached及memcached常用命令.这一节我们将通过ruby来调用memcached相关操作. 第一步,安装ru ...

  5. Memcached学习笔记

    [TOC] 前言 此为学习笔记汇总,如有纰漏之处,还望不吝指出,谢谢. 启动流程 调用settings_init()设定初始化参数 从启动命令中读取参数来设置setting值 设定LIMIT参数 开始 ...

  6. 分布式缓存技术memcached学习(二)——memcached基础命令

    上文<linux环境下编译memcahed>介绍了memcahed在linux环境下的安装以及登录,下面介绍memcahed的基本命令的使用. Add 功能:往内存增加一条新的缓存记录 语 ...

  7. 应用程序Cache对象到高性能Memcached学习之路

    来源:微信公众号CodeL 以下是个人学习之路的简单分享,不足之处欢迎大神们批评指正! 在网站开发的初期,我们没有考虑更多的东西,也没有对缓存进行系统的设计,而是直接使用了应用程序缓存对象Cache, ...

  8. memcached学习笔记2--安装及命令

    学习memcached的原理: 用户一 -> 访问浏览器 -> 服务器Apache -> PHP文件(该文件应用了memcached技术) -> [第一次]到数据库DB中查找数 ...

  9. 分布式缓存技术memcached学习系列(二)——memcached基础命令

    上文<linux环境下编译memcahed>介绍了memcahed在linux环境下的安装以及登录,下面介绍memcahed的基本命令的使用. Add 功能:往内存增加一条新的缓存记录 语 ...

  10. 分布式缓存技术memcached学习(五)—— memcached java客户端的使用

    Memcached的客户端简介 我们已经知道,memcached是一套分布式的缓存系统,memcached的服务端只是缓存数据的地方,并不能实现分布式,而memcached的客户端才是实现分布式的地方 ...

随机推荐

  1. How Much Work Does it Take to be a Successful Mathematician?

    http://mathoverflow.net/questions/9799/how-much-work-does-it-take-to-be-a-successful-mathematician# ...

  2. Laravel入门笔记

    Laravel 是一款简洁,优雅的一款框架,可以说是入门TP后的第二款可以选择的框架. 目录部分: app -> 自己写的代码 http -> Controller -> 控制器 b ...

  3. VS2015创建的Asp.net WebApi默认项目在CentOS7+Mono4.2.2+jexus5.8运行不起来的解决方案

    主要原因是Web.config配置的问题. 修改成如下内容: <?xml version="1.0" encoding="utf-8"?> < ...

  4. SAP-设置显示表格格式

    在我们用SAP系统的过程中产看表格的时候,需要设置查看表格的格式,表格的格式主要包含两个方面: 1,表格的样式 在查看表格的时候点击[设置]-[用户参数] 勾选[ALV Grid display]就控 ...

  5. 怎样破解邮箱password

    破解邮箱password怎样破解邮箱password邮箱在我们的生活中日益成为一个不可或缺的角色.公司与公司之间的商贸往来,学生与老师间的学习交流,以及占非常大部分的私人信件的往来等等非常难离开它.但 ...

  6. mybatis0211 mybatis和spring整合

    1mybatis和spring整合 1.1 mybaits和spring整合的思路 .让spring管理SqlSessionFactory .让spring管理mapper动态代理对象和dao. 使用 ...

  7. mha 自动failover 原创

    自动failover slave1:stop slave io_thread slave2stop slave io_thread server1:   create database sbtest; ...

  8. 1043. Is It a Binary Search Tree (25)

    the problem is from pat,which website is http://pat.zju.edu.cn/contests/pat-a-practise/1043 and the ...

  9. 实例源码--Android手机狗(防盗)源码

      下载源码   技术要点: 1. SharedPreferences数据保存 2. SIM卡状态监 听 3. 发短信.发邮 箱.获取通讯信息 4. 源码带详细的 中文注释 ...... 详细介绍: ...

  10. java_闭包和回调实现一边按键盘一边演讲

    package ming; interface Teachable { void work(); } class Programer { private String name; public Str ...