zoukankan      html  css  js  c++  java
  • memcache安装与简单介绍

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

    安装

      安装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、不支持事务回滚

  • 相关阅读:
    NYOJ 625 笨蛋的难题(二)
    NYOJ 102 次方求模
    ZJU Least Common Multiple
    ZJUOJ 1073 Round and Round We Go
    NYOJ 709 异形卵
    HDU 1279 验证角谷猜想
    BNUOJ 1015 信息战(一)——加密程序
    HDU 1202 The calculation of GPA
    "蓝桥杯“基础练习:字母图形
    "蓝桥杯“基础练习:数列特征
  • 原文地址:https://www.cnblogs.com/-beyond/p/7813751.html
Copyright © 2011-2022 走看看