memcached 学习笔记

最近,想看看开源的东西,正好在网上看到了memcached这个服务器,就简单学了学。做个笔记!

1.memcached 介绍

  memcached我原本以为是一款数据库软件,但详细了解才发现,准确的是一款服务器软件,近年来memcached总被说被淘汰了,被redis赶超了,但我认为它们各自有自       己的优势,还是值得去了解一下的。

  memcached是一款自由&&开放源码,高性能,分布式内存对象缓存系统,老牌的NoSQL应用,一般的使用目的是,通过缓存数据库查询结果,减少数据库的访问次数,从而提高动态Web应用的速度,提高可扩展性。

  NoSQL:(not  only  sql),翻译成大白话就是不仅仅是关系型数据库。

  memocached的显著特点是:它基于Key-value键值对存储;基于键值对存储的还有redis;同时还有基于文档存储的像:mongodb;

2.memchached的启动

  (1)在Windows下启动

    我们可以在官网上下载最新版的memcached ,同时放在一个文件夹下(因为这个软件很小),所以不用安装了。打开dos窗口,切换到存放软件的文件夹,输入

>memcached.exe -m 64 -p 11211 -vvv  即可启动memcched。这里的参数不一一介绍了,可以通过-help选项查询。也是比较简单的。

    一般我们通过telnet对memcached进行连接。我们要打开windows下的telnet.在控制面板里找到打开或关闭windows功能选项,勾选出telnet服务器telnet客户端选项,点击确认即可。<memcached客户端与服务器的连接基于文本协议,不是二进制协议>

    打开telnet;

    >telnet (ip)  (端口号)

    我们可以按下" Ctrl + ] ", 查看回显功能,回车查看;

  (2)linux下启动

    在linux下启动同样很方便。在官网上下载最新版的.tar.gz文件。解压,编译连接,运行即可。就是我们平时的./configure --prefix=() && make  &&make install

之后用上边的命令运行即可。(这里不过多介绍了)。

  3.memcached 命令介绍

  (1)add 命令

    语法:add  key  flag expire length

   key: 就是我们说的key-value 里的value,其实就是给value取一个唯一的名字;

flag: 一个整数,表示一种规则。平时我们就取0;

expire:表示有效期(存储在内存多少时间,一般按秒计算),若为0,表示不自动失效,会保持30天,如果不关机的情况下;

length: 缓存长度(字节为单位);

例如:add  book 0 0 5

>hello

       STORED

  (2)get 命令   <查找>

    语法:get  key

    warning: 用add时,只有key不存在时才能建立;但对于replace,只有key存在时才能修改!

  (3)replace 命令   <修改>

    参数和add命令一样,其实就是修改value

    (4) delete  命令

    语法:delete  key  [数字]  (其中这个数字表示需要等待n秒后才可以再运用此键,因为刚删除,需要让页面缓存代谢完毕)

    (5) set  命令    <等同于add和repalce的结合体>

    如果服务器中没有这个键,则加上去;

     如果服务器有这个键,则可修改;

     set的语法和add语法一样;

   (6) incr  <increase,增长>

    语法:incr  key  num (其中num 表示增加的数量)

   (7) decr  <decrease,减少>

    语法:decr  key  num

注意:incr和decr 需要把值理解为无符号书来理解,理论上num的值得范围在(0, 2^32 - 1);

   (8)stats   <统计>

    查看内存的信息等

   (9) flush_all <清空所有的存储对象>

    注意这个命令慎用!

  

时间: 2024-10-05 04:41:02

memcached 学习笔记的相关文章

memcached学习笔记6--浅谈memcached的机制 以及 memcached细节讨论

附:请浅谈memcached的机制 答: ①基于C/S架构,协议比较简单 c/s架构,此时memcached为服务器端,我们可以使用如PHP,c++/c等程序连接memcached服务器. memcached的服务器客户端通信并不使用XML等格式,而使用简单的基于文本行的协议,因此通过telnet也能在memcached上保存.读取数据. ②基于libevent事件来处理的 libevent是一套垮平台的事件处理接口的封装,能够处理兼容包括这些操作系统: windows/Linux/BSD/So

memcached学习笔记(一)

预留位置,待整理 memcached学习笔记(一),布布扣,bubuko.com

memcached学习笔记5--socke操作memcached 缓存系统

使用条件:当我们没有权限或者不能使用服务器的时候,我们需要用socket操作memcached memcached-client操作 特点: 无需开启memcache扩展 使用fsocketopen()套接字连接memcached 同样执行CRUD require_once(CLASS_PATH.'memcached-client.php');//CLASS_PATH 是我定义的类文件文件夹路径 $mc = new memcached( array( 'servers' => array( '1

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

上一篇回顾:<memcached学习笔记——存储命令源码分析上篇>通过分析memcached的存储命令源码的过程,了解了memcached如何解析文本命令和mencached的内存管理机制. 本文是延续上一篇,继续分析存储命令的源码.接上一篇内存分配成功后,本文主要讲解:1.memcached存储方式:2.add和set命令的区别. memcached存储方式 哈希表(HashTable) 哈希表在实践中使用的非常广泛,例如编译器通常会维护的一个符号表来保存标记,很多高级语言中也显式的支持哈希

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

学习memcached的原理: 用户一 -> 访问浏览器 -> 服务器Apache -> PHP文件(该文件应用了memcached技术) -> [第一次]到数据库DB中查找数据 -> 调用在memcached中 用户二 -> 访问浏览器 -> 服务器Apache -> PHP文件(也是同上面一个文件) -> (如果查询的条件一致)先在mem中找是否存在数据(存在直接调用内存中的数据)  -> (不存在)读取数据库,再将这次结果放入memcach

memcached学习笔记4--memcache扩展操作memcached

1. 安装并配置memcache扩展库 找到php.ini文件 添加: extendsion= php_memcache.dll 并把对应的dll文件拷贝到ext目录 2. 使用PHP对Memcahced进行CURD操作(查看手册) 3. 编程测试 用于测试添加和获取 //实例化memcache对象 $m = new Memcache(); //连接到指定的memcached中 ,第一个参数:IP地址, 第二个参数memcached端口号 $m->connect('127.0.0.1', 112

memcached学习笔记3--telnet操作memcached

方式: 一.telnet访问memcached缓存系统(主要用于教学,不讨论) telnet 127.0.0.1 11211     => telnet IP地址 端口号 //往Memcached中存放数据 add username 0 60 5       => add:添加命令 username:key的名字(是以key/value存放) 0:标示,一般不用管 60:缓存多长时间,超过时间自动删除,单位(秒) s 5: 表示放入的数据大小 注意:如果一个key已经存在,再要添加数据到这个k

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

原创文章,转载请标明,谢谢. 上一篇分析过memcached的连接模型,了解memcached是如何高效处理客户端连接,这一篇分析memcached源码中的process_update_command函数,探究memcached客户端的set命令,解读memcached是如何解析客户端文本命令,剖析memcached的内存管理,LRU算法是如何工作等等. 解析客户端文本命令 客户端向memcached server发出set操作,memcached server读取客户端的命令,客户端的连接状态

基于CentOS6.5的LNMP下memcached学习笔记的整理

1.概述 Memcached是一个C语言编写的高性能分布式的内存对象缓存系统,用于减少Web应用直接跟数据库交互,从而减轻数据库负载压力,将一些经常访问的数据对象以K/V(键/值)对的形式存放在内存中作为缓存数据.缓存是一种加速应用向后端服务器读取数据的优化手段,其思想是用对内存的读取换取直接对磁盘数据库中数据的操作,以提高web应用程序的访问速度,从而实现web动态页面高性能.高并发的访问. Memcached是通过C语言Danga Interactive开发编写的,使用libevent框架实