zoukankan      html  css  js  c++  java
  • Memcache的安装和使用

             Memcache是高性能,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。
            libevent是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:Windows/Linux/BSD/Solaris 等操作系统的的事件处理。Memcached 使用libevent来进行网络并发连接的处理,能够保持在很大并发情况下,仍旧能够保持快速的响应能力。所以安装Memcached需先安装libevent。

    一、libevent的安装

    基础环境的准备 
    1. wget http://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz
    2. tar -zxvf libevent-2.0.22-stable.tar.gz
    3. cd libevent-2.0.22-stable
    4. ./configure --prefix=/application/libevent
    5. make
    6. make install

    二、Memcache的安装

    1. wget http://www.memcached.org/files/memcached-1.4.29.tar.gz
    2. tar -zxvf memcached-1.4.29.tar.gz
    3. cd memcached-1.4.29
    4. ./configure --prefix=/application/memcached --with-libevent=/application/libevent
    5. make
    6. make install

    启动选项介绍:

    -p TCP监听端口 (default: 11211)
    -U UDP 监听端口 (default: 11211, 0 is off)
    -s UNIX socket监听路径,不支持网络
    -a UNIX socket访问掩码, 八进制 (default: 0700)
    -l <ip_addr> 监听的服务器IP地址 (default: all addresses)
    -r 最大限度利用核心文件限制
    -u 运行memcached用户
    -m 最大的内存使用 (default: 64 MB)
    -M 内存耗尽返回错误
    -c 最大并发连接 (default: 1024),按照你服务器的负载量来设定。
    -k 锁定所有分页内存
    -v 输出警告和错误信息
    -vv 同时打印客户端请求和返回信息
    -vvv 打印内部状态转换信息
    -i 打印memcached 和 libevent 版本信息
    -P 设置保存pid文件, only used with -d option
    -f 块大小增长倍数 (default: 1.25)
    -n key+value+flags最小分配空间(default: 48),key+value+flags默认是48
    -L 如何有效,尝试使用大内存页。增加内存页大小可以减少失误的TLB数量,提高性能。
    -D 指定key和IDs的分隔符 default is “:” (colon). 如果指定此选项,统计信息收集自动开启;
    -t 使用的线程数量 (default: 4)
    -R 每个事件的最大请求数 (default: 20)
    -C 禁止使用 CAS
    -b 设置积压队列数限制 (default: 1024)
    -B 绑定协议 – one of ascii, binary, or auto (default)
    -I 分配给每个slab页(default: 1mb, min: 1k, max: 128m)

    服务启动

    1. memcached -d -m 10 -u root -l 192.168.0.122 -p 11200 -c 256 -P /tmp/memcached.pid
    -d 选项是启动一个守护进程,
    -m 是分配给Memcache使用的内存数量,单位是MB,这里是10MB
    -u 是运行Memcache的用户,这里是root
    -l 是监听的服务器IP地址,如果有多个地址的话,这里指定了服务器的IP地址192.168.0.122
    -p 是设置Memcache监听的端口,这里设置了12000,最好是1024以上的端口
    -c 选项是最大运行的并发连接数,默认是1024,这里设置了256,按照你服务器的负载量来设定
    -P 是设置保存Memcache的pid文件

    检查服务:

    1、查看启动的memcache服务:
    netstat -lp | grep memcached
    2、查看memcache的进程号(根据进程号,可以结束memcache服务:“kill -9 进程号”)
    ps -ef | grep memcached
    3、查看状态
            对Memcached缓存服务的状态查询,可以先telnet连接上服务:telnet 127.0.0.1 11211 ,然后使用 stats命令查看缓存服务的状态,会返回如下的数据:    
    1. STAT pid 27954
    2. STAT uptime 139
    3. STAT time 1427031155
    4. STAT version 1.4.22
    5. STAT libevent 2.0.22-stable
    6. STAT pointer_size 32
    7. STAT rusage_user 0.005999
    8. STAT rusage_system 0.011998
    9. STAT curr_connections 10
    10. STAT total_connections 11
    11. STAT connection_structures 11
    12. STAT reserved_fds 20
    13. STAT cmd_get 0
    14. STAT cmd_set 0
    15. STAT cmd_flush 0
    16. STAT cmd_touch 0
    17. STAT get_hits 0
    18. STAT get_misses 0
    19. STAT delete_misses 0
    20. STAT delete_hits 0
    21. STAT incr_misses 0
    22. STAT incr_hits 0
    23. STAT decr_misses 0
    24. STAT decr_hits 0
    25. STAT cas_misses 0
    26. STAT cas_hits 0
    27. STAT cas_badval 0
    28. STAT touch_hits 0
    29. STAT touch_misses 0
    30. STAT auth_cmds 0
    31. STAT auth_errors 0
    32. STAT bytes_read 7
    33. STAT bytes_written 0
    34. STAT limit_maxbytes 67108864
    35. STAT accepting_conns 1
    36. STAT listen_disabled_num 0
    37. STAT threads 4
    38. STAT conn_yields 0
    39. STAT hash_power_level 16
    40. STAT hash_bytes 262144
    41. STAT hash_is_expanding 0
    42. STAT malloc_fails 0
    43. STAT bytes 0
    44. STAT curr_items 0
    45. STAT total_items 0
    46. STAT expired_unfetched 0
    47. STAT evicted_unfetched 0
    48. STAT evictions 0
    49. STAT reclaimed 0
    50. STAT crawler_reclaimed 0
    51. STAT lrutail_reflocked 0
    参数项说明:
    time:服务器当前的unix时间戳
    total_items:从服务器启动以后存储的items总数量
    connection_structures:服务器分配的连接构造数
    version:memcache版本
    limit_maxbytes:分配给memcache的内存大小(字节)
    cmd_get:get命令(获取)总请求次数
    evictions:为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
    total_connections:从服务器启动以后曾经打开过的连接数
    bytes:当前服务器存储items占用的字节数
    threads:当前线程数
    get_misses:总未命中次数
    pointer_size:当前操作系统的指针大小(32位系统一般是32bit)
    bytes_read:总读取字节数(请求字节数)
    uptime:服务器已经运行的秒数
    curr_connections:当前打开着的连接数
    pid:memcache服务器的进程ID
    bytes_written:总发送字节数(结果字节数)
    get_hits:总命中次数
    cmd_set:set命令(保存)总请求次数
    curr_items:服务器当前存储的items数量

    常用命令的操作参考































  • 相关阅读:
    IPv6隧道技术——6to4实验分析
    IPV6地址解析与DAD机制实验分析
    交换机的高级特性
    组播IGMP实验分析
    BGP实验分析(二)
    BGP实验分析(一)
    路由策略实验分析(二)
    路由策略实验分析(一)
    一线互联网拼多多、饿了么、蚂蚁金服、哈啰出行、携程、饿了么、2345、百度等一些Java面试题
    Java中的匿名内部类
  • 原文地址:https://www.cnblogs.com/caoxiaojian/p/5715573.html
Copyright © 2011-2022 走看看