最近,想看看开源的东西,正好在网上看到了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 <清空所有的存储对象>

    注意这个命令慎用!

  

memcached 简介的更多相关文章

  1. Memcached简介

    在Web服务开发中,服务端缓存是服务实现中所常常采用的一种提高服务性能的方法.其通过记录某部分计算结果来尝试避免再次执行得到该结果所需要的复杂计算,从而提高了服务的运行效率. 除了能够提高服务的运行效 ...

  2. 分布式缓存BeIT Memcached简介

    分布式缓存BeIT Memcached简介 或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步.下面稍微介绍一下beitmemca ...

  3. Memcached简介及环境安装

    Memcached简介及环境安装 author:SimpleWu 简介 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga ...

  4. 01 . Memcached简介及部署

    Memcached简介 memcached是一个自由开源,高性能,分布式内存对象存储系统 基于内存的key-valued存储,用来存储小块的任意数据(字符串,对象) 他是一个简洁的key-value存 ...

  5. Memcached 简介、安装和基本使用

    本章包括内容: 一.Memcached是什么.能干什么.特点; 二.在Centos7上安装Memcached 三.Memcached启动.简单操作.关闭------------------------ ...

  6. 分布式缓存系统Memcached简介与实践

    缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵 ...

  7. 分布式缓存BeIT Memcached简介(转载)

    或许你还没有用到过分布式缓存,在web集群的情况下,它可以很好的让一部分常用数据常驻服务器内存而不用担心各台web不同步.下 面稍微介绍一下beitmemcached对于.net的支持,官方参考htt ...

  8. memcached简介(转)

     背景 memcached是一个高性能.分布式的内存对象缓存系统.    memcached广泛应用在大负载高并发的网站上,是一种非常成熟的产品(称为一项技术也未尝不可).像facebook,yout ...

  9. Memcached总结一:memcached简介及适用和不适应场景

    Memcached是免费的,开源的,高性能的,分布式内存对象的缓存系统(键/值字典),旨在通过减轻数据库负载加快动态Web应用程序的使用. Memcached是由布拉德·菲茨帕特里克(Brad Fit ...

随机推荐

  1. 彼得原理(The Peter Principle)

    一. 关于彼得原理(The Peter Principle) 彼得原理(The Peter Principle)是由美国管理学家劳伦斯·彼得(Laurence.J.Peter)根据千百个有关组织中不能 ...

  2. Android基础总结(1)

    1.Android开发的特点 四大组件:活动(Activity).服务(Service).广播接收器(Broadcast Receiver).内容提供器(Content Provider).其中活动是 ...

  3. Linq把一个DataTable根据一列去除重复数据

    DataTable dt_temp = dt.AsEnumerable().Cast<DataRow>().GroupBy(p => p.Field<string>(&q ...

  4. 《Ossim应用指南》入门篇

    Ossim应用入门 --在<OSSIM在企业网络管理中的应用>http://chenguang.blog.51cto.com/350944/802007 这篇文章发布之后,很多同行对oss ...

  5. VC 运行时库 /MD、/MDd 和 /MT、/MTd

    这里总结下他们的区别,后面的那个'd'是代表DEBUG版本,没有'd'的就是RELEASE版本了. 首先说/MT /MT是 "multithread, static version ” 意思 ...

  6. nagios架构及windows,linux客户端配置

    Linux下Nagios的安装与配置 一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等. ...

  7. 【MySQL】DNS与MHA/ZABBIX构建的高可用MySQL

    MySQL实例组与DNS和MHA/ZABBIX架构示意图: DNS搭建:http://www.cnblogs.com/jiangxu67/p/4801230.html MHA分析:http://www ...

  8. 关于module_param()宏

    在用户态下编程可以通过main()的来传递命令行参数,而编写一个内核模块则通过module_param () module_param宏是Linux 2.6内核中新增的,该宏被定义在include/l ...

  9. leetcode 24

    链表操作的,要注意标记头结点和边界问题. 代码如下: ListNode *swapPairs(ListNode *head) { if(head==NULL||head->next==NULL) ...

  10. 网络基础知识、ASP.NET 核心知识(1)*

    为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...