Memcached安装与配置测试

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介:

一、Memcached介绍
     Memcached是一款开源的,高性能的分布式纯内存缓存服务软件,Mem就是内存的意思,cache缓存的意思,d是daemon的意思。Memcache项目诞生于2003年,Memcache服务分为客户端和服务端两部分,client/server。
客户端软件:Memcache-2.2.7.tar.gz
服务端软件:Memcached-1.4.13.tar.gz

二、Memcached 作用
     1.Memcached  纯内存,用来缓存后端数据库的数据,博文,贴子,用户信息。

     2.用来实现集群架构中的 "session" 会话共享存储

     Memcachedb 内存加磁盘 sina开发,Memcached+BDB。用来缓存后端数据库的数据(博文,贴子,用户信息),可以直接做数据库用(微薄粉丝关注,统计),mysql补充。
     Redis  内存加磁盘,作用同Memcachedb,支持主从复制,持久化等,数据类型更丰富,作为mysql的补充,redis。
     Squid,nginx,varnish,ats  web缓存,放在web前端。缓存静态图片,JS,CSS,HTML,视频。CDN就是利用这类软件做的分布式缓存。

三、Memcached工作原理
   1.C/S架构,2000多行代码,C语言编写
   2.基于libevent事件处理,异步IO模型(epoll事件模型)
   3.数据以key/value键值对的形式存在
   4.纯内存访问,重启数据丢失
   5.多个集群节点互不联系(集群调度算法,一般用一致性HASH)

四、安装memcached服务端实战及测试

  1. 安装memcached服务端实战:
    wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
    ls libevent-1.4.13-stable.tar.gz
    tar xf libevent-1.4.13-stable.tar.gz
    cd libevent-1.4.13-stable
    ./configure
    make
    make install

    tar xf memcached-1.4.13.tar.gz 
    cd memcached-1.4.13
    ./configure 
    make 
    make install

    启动:
    memcached -d -c 10240 -p 11211 -m 16 -P /var/run/memcached.pid -u root
    memcached -d -c 10240 -p 11212 -m 16 -P /var/run/memcached1.pid -u root -l 10.0.0.6
    关闭:
    pkill memcached

    启动参数解释:
    -p  :指定端口
    -m :指定memcached服务可以缓存数据的最大内存,默认为64M。
    -u  :指定运行memcached服务的用户
    -d  :作为守护进程在后台运行
    -c  :指定memcached服务的最大的并发连接数,默认是1024,按照服务器的并发访问量来设定。
    -P  :设置保存memcached的pid文件
    -l   :指定监听的服务器IP地址
    -f   : 调优因子


    [root@LB-111-06 ~]# netstat -tunlp|grep mem #memcache服务端memcached
    tcp        0      0 10.0.0.6:11211              0.0.0.0:*                   LISTEN      1594/memcached      
    udp        0      0 10.0.0.6:11211              0.0.0.0:*                               1594/memcached   

  2. 测试服务端安装成果:  
    [root@LB-111-06 ~]# printf "set key008 0 0 10\r\noldboy0987\r\n"|nc 10.0.0.6 11211 
    STORED
    [root@LB-111-06 ~]# printf "get key008\r\n"|nc 10.0.0.6 11211              

    VALUE key008 0 10
    oldboy0987
    END
    [root@LB-111-06 ~]# printf "delete key008\r\n"|nc 10.0.0.6 11211   
    DELETED
    [root@LB-111-06 ~]# printf "get key008\r\n"|nc 10.0.0.6 11211   
    END

    Memcached状态查看:
    stats settings         可以查看一些memcached 设置 例如 线程数。。。
    stats slabs             查看slabs  相关情况
    stats items            查看Items 相关情况
    stats sizes             查看存在的Item 个数和大小
    stats cachedump  查看 key value 
    stats reset             清理统计数据


  3. 安装memcache客户端
    wget http://pecl.php.net/get/memcache-2.2.7.tgz
    tar xf memcache-2.2.7.tgz  #在web服务器上安装
    cd memcache-2.2.7
    /application/php/bin/phpize
    ./configure --enable-memcache --with-php-config=/application/php/bin/php-config --with-zlib-dir
    make
    make install


  4. 实现集群中的session共享存储:
    diff php.ini php.ini
    < session.save_handler = "memcache"
    ---
    > session.save_handler = files
    1490c1490
    < session.save_path = "tcp://10.0.0.6:11211"
    ---
    > ;session.save_path = "/tmp" 
    注意说明:
    上面实例是在lamp/lnmp环境中通用的方法,另外一种方法是单独在lamp或者lnmp下实现,不用修改php.ini文件,直接修改下面对应的配置文件:
    1)lamp

    在 httpd.conf 对应的虚拟主机中添加(可以针对每个虚拟主机进行memcached共享session)

    session.save_handler = "memcache"

    session.save_path = "tcp://127.0.0.1:11211"

    2)lnmp

    在 php-fpm.conf 对应的pool中添加

    session.save_handler = "memcache"

    session.save_path = "tcp://127.0.0.1:11211"

    3)、检测是否连接成功

    [root@centos memcache-2.2.7]# /usr/local/php/bin/php -m |grep memcache  #有memcache模块
    memcache


  5. 获取Memcached服务的状态信息并解读重点:
    [root@LB-111-06 tools]# printf "stats\r\n"|nc 10.0.0.6 11211
    STAT pid 5409
    STAT uptime 97543
    STAT time 1446485025
    STAT version 1.4.24
    STAT libevent 1.4.14b-stable
    STAT pointer_size 64
    STAT rusage_user 1.977699
    STAT rusage_system 2.254657
    STAT curr_connections 5
    STAT total_connections 27
    STAT connection_structures 6
    STAT reserved_fds 20
    STAT cmd_get 25
    STAT cmd_set 19
    STAT cmd_flush 0
    STAT cmd_touch 0
    STAT get_hits 23
    STAT get_misses 2
    STAT delete_misses 0
    STAT delete_hits 0
    STAT incr_misses 0
    STAT incr_hits 0
    STAT decr_misses 0
    STAT decr_hits 0
    STAT cas_misses 0
    STAT cas_hits 0
    STAT cas_badval 0
    STAT touch_hits 0
    STAT touch_misses 0
    STAT auth_cmds 0
    STAT auth_errors 0
    STAT bytes_read 2364
    STAT bytes_written 991
    STAT limit_maxbytes 67108864
    STAT accepting_conns 1
    STAT listen_disabled_num 0
    STAT threads 4
    STAT conn_yields 0
    STAT hash_power_level 16
    STAT hash_bytes 524288
    STAT hash_is_expanding 0
    STAT malloc_fails 0
    STAT bytes 319
    STAT curr_items 4
    STAT total_items 19
    STAT expired_unfetched 0
    STAT evicted_unfetched 0
    STAT evictions 0
    STAT reclaimed 0
    STAT crawler_reclaimed 0
    STAT crawler_items_checked 0
    STAT lrutail_reflocked 0
    END
    [root@LB-111-06 tools]# printf "stats\r\n"|nc 10.0.0.6 11211|grep get
    STAT cmd_get 25      #请求25次
    STAT get_hits 23     #成功获取(命中)23次
    STAT get_misses 2    #丢失两次

    注:用memadmin工具也可以查询命中率!!@!!


本文转自 linuxzkq 51CTO博客,原文链接:http://blog.51cto.com/linuxzkq/1735451
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
7天前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
23 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
13天前
|
Linux
kickstart自动安装系统 --DHCP 配置及测试
PXE+Kickstart自动安装系统需配置DHCP服务器分配IP。dhcpd.conf示例:设置更新样式、忽略客户端更新、指定下一服务器及启动文件。定义子网、网关、掩码、动态地址池并预留特定MAC地址。重启xinetd、NFS、DHCP服务,确保新服务器与Kickstart服务器在同一网络,避免误装其他机器。注意隔离测试网络以防干扰生产环境。
60 18
|
10天前
|
JavaScript 测试技术
vue配置生产环境.env.production、测试环境.env.development
该文章介绍了如何在Vue项目中配置和使用不同的环境变量文件(.env、.env.production、.env.development)以适应开发、测试和生产环境,并通过修改`package.json`中的scripts来实现不同环境的打包。
34 0
vue配置生产环境.env.production、测试环境.env.development
|
2月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
59 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
3天前
|
安全 测试技术 Linux
CentOS7 安装vulhub漏洞测试环境
CentOS7 安装vulhub漏洞测试环境
|
9天前
|
Web App开发 Linux Python
linux上安装selenium环境及测试
该文章提供了在Linux CentOS上安装Selenium环境、Chrome浏览器及Chromedriver的详细步骤,并演示了如何以无头模式进行测试。
22 0
|
2月前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
|
21天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
99 7
Jmeter实现WebSocket协议的接口测试方法
|
21天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
97 3
快速上手|HTTP 接口功能自动化测试
|
21天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
31 5
下一篇
无影云桌面