本文参考自菜鸟教程中的内容。

安装

  安装memcache的时候,请切换为root用户

root@centos # wget http://www.memcached.org/files/memcached-1.5.9.tar.gz
root@centos # tar -zxf memcached-1.5.9.tar.gz
root@centos # cd memcached-1.5.9
root@centos # ./configure --prefix=/usr/local/memcache
root@centos # make && make install
root@centos # ln -s /usr/local/memcache/bin/memcached /usr/local/sbin/memcached

  

启动

  启动memcache的时候,不能使用root身份,所以请切换为其他用户。

beyond@centos $ memcached -p 11211 -m 64m -d
beyond@centos $ lsof -i:11211
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
memcached 31461 beyond 26u IPv4 10238464 0t0 TCP *:memcache (LISTEN)
memcached 31461 beyond 27u IPv6 10238465 0t0 TCP *:memcache (LISTEN)

  -p 表示memcache监听的端口。

  -m 表示将本地的多少内存分配给memcache,单位为MB。

  -d 表示以守护进程方式运行(后台运行)

  -d可以替换为-vv,表示显示memcache的运行状态。

命令

  有关参数的说明:flags 存储额外信息,在使用get和gets的时候可以看到;expire 过期时间的单位为秒; bytes_length 要设置的value的长度(字节数)。

  set:不管是否设置key对应的值,使用set命令之后,都会重新设置key对应的值。有则更新,无则创建。

set key flags expire bytes_length [noreply]
value

  

  add:如果之前没有设置过key对应的值(或者说已经过期了),那么此时就设置key对应的值;如果之前设置了key对应的值(并且没有过期),那就什么也不做,不会进行更新操作。

add key flags expire bytes_length [noreply]
value

  

  replace:如果设置了key对应的值,并且没有过期的话,那么就更新key对应的值;如果没有设置key对应的值,或者说之前设置了,但是过期了,那么此时并不会重新设置key对应的值,(什么也不做)。

replace key flags expire bytes_length [noreply]
value

  

  append:如果设置了key对应的值,并且没有过期的话,那么可以在key对应的值后面增加内容;如果没有key对应的值,或者过期了,那么就什么也不做。

append key flags expire add_bytes_length [noreply]
value

  

  prepend:和append的规则一样,区别是prepend是在value的前面追加。

prepend key flags exptime bytes [noreply]
value

  

  get:获取memcache中的key对应的信息(可以是一个key列表,使用空格分开)。

get key1 key2 ...

  

  gets:获取memcache中key对应的详细信息,包括cas令牌。

gets key1 key2 ...

  

  delete:删除一个key,使用delete一次只能删一个key。

delete key

  

  incr :如果key存在,并且是32位的整型,那么就将value增加一个decrement,注意必须制定incr。

incr key increment

  

  decr:如果key存在,并且是32位整型数字,那么就将value减少decrement,必须指定decrment。

decr key decrement

  

  flush_all:清空memcache中所有的数据。如果没有指定after的话,就立即清除;如果制定了after,就在after秒之后清空数据。

flush_all [after]

  

拓展

  0、memcache中的数据保存在内存中,断电就会消失,并且存的单个数据项默认是不能大于1MB的,但是可以通过修改源码来实现改变大小。

  1、memcache中只能存字符串,也就是说,如果要存数组、对象的话,需要先序列化之后再存。

  3、memcache中的数据在过期的时候,并不会立即被清除,而是在下一次访问这个过期数据的时候,才清除这个过期数据。

  4、memcache是分布式缓存,但是每个节点之间不会进行相互通信,也就是说,节点之间不会进行同步数据操作,用户需要自己设计算法将数据分配到不同的memcache节点中。

  5、memcahce是一个多线程运行的,其中主线程主要监听连接请求,工作线程主要进行处理客户端请求。主线程如果监听到连接请求后,就接受请求,然后将连接分配给工作线程去处理;工作线程接到请求之后,进行处理请求,然后将结果返回给客户端。

  6、memcache使用LRU算法来进行数据的删除。

  7、memcache没有持久化的概念,即缓存中的数据不会保存到硬盘上,一旦断电,数据真的就丢了。redis有持久化。

  8、不支持事务回滚

memcache安装与简单介绍的更多相关文章

  1. Kali安装zmap简单介绍

    zmap是一个非常方便的扫描器,跟nmap和masscan一样,不过区别在于zmap他快,号称是一小时扫遍整个互联网.主要使用方式是TCP SYN scan.TCP connectscan.UDP s ...

  2. java web(一):tomcat服务器的安装和简单介绍,与eclipse关联

    一:下载tomcat安装包和安装 这个百度一下就可以了. 安装完以后进入tomcat的安装路径查看 如图所示:有几个目录简单介绍下 bin目录:   存放运行tomcat服务器的相关命令. conf目 ...

  3. Postman安装与简单介绍

    Postman简介 Postman是一个 Chrome 扩展,能提供强大的 Web API HTTP 请求调试功能.Postman能够发送任何类型的http请求,支持GET/PUT/POST/DELE ...

  4. postman插件的安装以及简单介绍

    1:postman是干什么的? Postman官网上这么介绍的:“Modern software is built on APIs,Postman helps you develop APIs fas ...

  5. supervisor的安装与简单介绍

    1,介绍 Supervisor是一个进程管理工具,官方的说法 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要 ...

  6. rocksDB 安装问题简单介绍

    前一段时间准备测试rocksdb,按照帖子和官网的例子,在安装过程中遇到一些问题.这里给出的是在Ubuntu下安装python使用的版本. 首先,要感谢这些帖子对我的帮助: 1:http://tech ...

  7. percona-toolkit的安装及简单介绍

    MySQL数据库是轻量级.开源数据库的佼佼者.其功能和管理,健壮性与Oracle相比还是有相当的差距.因此有非常多功能强大第三方的衍生产品,如percona-toolkit,XtraBackup等等. ...

  8. moogodb 安装及简单介绍

    1,安装Moogodb 因为是windows 64位操作系统,直接到官网上下载.msi文件,下载完成后点击安装,点击同意协议之后,出现下面的对话框, Choose Setup Type, 就是选择安装 ...

  9. 性能测试三十八:Java性能分析神器-JProfiler安装和简单介绍

    Jprofiler是一个重量级的工具,需要分别在服务器和windows都装客户端,会损耗性能,用于发现问题后排查问题,而不是常规的监控 JPROFILER工具下载地址:http://www.ej-te ...

随机推荐

  1. Java中String、StringBuffer、StringBuilder、StringTokenizer的区别

    Java语言中,有4个类可以对字符或字符串进行操作,它们是Character.String.StringBuffer.StringTokenizer,其中Character用于单个字符操作,Strin ...

  2. shell 学习笔记2

    shell的常用处理:https://github.com/dylanaraps/pure-bash-bible -d作为分隔符:read xargs -t作为分隔符:sort -F作为分隔符:awk ...

  3. 【MySQL】explicit_defaults_for_timestamp 参数详解

    简介:explicit_defaults_for_timestamp 系统变量决定MySQL服务端对timestamp列中的默认值和NULL值的不同处理方法. 此变量自MySQL 5.6.6 版本引入 ...

  4. 关于 $.proxy(fn,context,arg) 方法

    <!-- $.proxy(fn,this,agrument); proxy 代理 思考做酒的代理商argument就是代理商 把fn所在的作用域对象的参数/属性 代理给fn执行. fn: 要被调 ...

  5. 007——转载-MATLAB读取文件夹下的文件名

    (一)参考文献:https://blog.csdn.net/liutaojia/article/details/84899923 (二)第一步:获取文件夹下某类型数据的所有文件名 主要包括三个步骤: ...

  6. 【.Net设计模式系列】仓储(Repository)模式 ( 一 )

    开篇 2016新年伊始,望眼过去,不知不觉在博客园已经注册8个月啦,由于最近忙于工作,博客迟迟没有更新.直到最近一直研究.Net设计模式,对一些模式有所感悟,故拿出自己的心得与大家分享,在接下来的所有 ...

  7. am335x system upgrade kernel emmc(十八)

    1      Scope of Document This document describes EMMC hardware design 2      Requiremen 2.1     Func ...

  8. PHP的输出语法

    一.echo 只能输出标量数据类型,对于任何数据都可以转为字符串输出 echo是PHP的一种特殊的'指令',不一定要像函数的那样()去使用,可以直接紧跟一个空格输出信息,可以是多个参数 <?ph ...

  9. 2.设计模式-Abstract Factory 抽象工厂模式

    大神勿喷,不对的地方请指出来,学笔记而已. 解决的问题:应对多系列对象构建的变化或多系列(例如:崎岖的山路和平坦的马路属于一个系列) 不断的变化的创建. 使用场景:对象不变(比如有3个对象 " ...

  10. package.json 与 package-lock.json 的区别

    根据官方文档,这个package-lock.json 是在 `npm install`时候生成一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号. 它有什么用呢?因为n ...