• memcahced部署


    Memcached是一个内存数据库,数据以key/value键值对的形式保存在服务器预先分配的内存区块中,由于Memcached服务自身没有对缓存的数据进行持久化存储的设计,因此,在服务器端的Memcached进程重启之后,数据就会丢失。且当内存中缓存的数据容量达到启动时设定的内存值时,也会自动使用LRU算法删除过期的数据

    Memcached应用场景

    1. 作为数据库的查询数据缓存
    2. 作为集群节点的session会话共享存储

    Memcached预热及重启

    1. 当需要大面积重启Memcached时,首先要在前端控制网站入口的访问流量,然后重启Memcached集群进行预热,所有数据预热完毕之后,再逐步放开前端网站入口流量
    2. 启动集群服务器时,一定要从网站集群的后端一次往前端开启,特别是要提前预热

    Memcached删除机制

    1. 不主动检车item对象是否过期,而是在get时才会检查item对象是否过期以及是否应该删除
    2. 当删除item对象时,一般不释放内存空间,而是做删除标记,将指针放入slot回收插槽,下次分配的时候直接使用
    3. 当内存空间满的时候,将会根据LRU算法把最近最少使用的item对象删除
    4. 数据存入可以设定过期时间,但是数据过期后不会立即删除,而是在get时检查item对象是否过期以及是否应该删除
    5. 如果不希望系统使用LRU算法清除数据,可以使用-M参数

    安装Memcached

    #安装libevent
    #Memcached采用的是异步epoll/kqueue非阻塞I/O网络模型,其实现方式是基于异步的libevent时间单进程、单线程模式。使用libevent作为事件通知机制;
    #应用程序端通过指定服务器的IP地址及端口,就可以连接Memcached服务进行通信
    yum install libevent libevent-devel
     
    #安装Memcached
    yum安装的版本略低,但是不影响使用,建议使用yum或rpm包方式安装,简单易用
    yum install memcached
     
    #如果想安装更高版本的则需要编译安装
    wget http://memcached.org/files/memcached-1.4.39.tar.gz
    tar zxf memcached-1.4.39.tar.gz 
    cd memcached-1.4.39
    ./configure --prefix=/usr/local/memcached
    make && make install
    ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached
     
    #我们可以把启动命令放入/etc/rc.local,以便下次开机自启动
    

    Memcached服务的基本管理

    #启动Memcached
    memcached -m 16m -p 11211 -d -uroot -c 8192
     
    #启动命令相关参数书名
    -d 以守护进程方式运行服务
    -u 指定运行Memcached用户
    -l 指定监听的服务器IP地址,可以不设置此参数
    -p 指定监听的端口,默认为11211
    -P 保存PID到指定文件 
    -m 指定可以缓存数据的最大内存,默认为64MB
    -M 服务内存不够时禁止LRU,如果内存满了会报错(rather than removing items)
    -L 启用大内存也,可以降低内存浪费,改进性能
    -c 最大并发连接数,默认是1024
    -t 线程数,默认4.由于Memcached采用的是NIO,所以太多线程作用不大
    -R 每个event最大请求数,默认是20
    -C 禁用CAS(可以禁止版本计数,减少开销)
     
    #关闭Memcached
    单实例:ps -ef|grep memcached|grep -v grep|awk '{print $2}'|xargs kill
    多实例: kill `cat /var/run/11211.pid`    #启动多实例最好在启动时增加-P参数指定固定的pid文件,这样便于管理
    

    工作中如何配置Memcached

    和开发人员进行深入沟通,确定内存大小以及业务的重要性,进行决定是否采用负载均衡、集群,以及确定并发连接数等。对于运维人员,部署Memcached一般就是安装Memcached服务端,把服务启动起来,做好监控,配置好开机自启动。客户端的PHP程序一般在安装LNMP环境时都会提前安装Memcached客户端插件,Java程序环境下,开发人员会用第三方的JAR包直接连接Memcached服务。

  • 相关阅读:
    图解机器学习读书笔记-CH3
    塑造职场影响力的五大法宝
    怎样培养独挡一面的能力
    数据结构
    [分享]恼人的设计模式
    Git使用总结
    设计师整理的系统开发流程-简洁又有重点
    JavaScript中的String对象
    python高效解析日志入库
    如何让js不产生冲突,避免全局变量的泛滥,合理运用命名空间
  • 原文地址:https://www.cnblogs.com/sellsa/p/7788655.html
Copyright © 2020-2023  润新知