• 编译安装Memcached并使用systemctl管理


    安装依赖

    在Linux下编译,需要gcc、make、cmake、autoconf、libtool、libevent等工具,在Linux联网状态下我们可以使用yum命令来安装锁需要的依赖

    yum -y install gcc gcc-c++ make cmake autoconf libtool libevent libevent-devel
    

    编译安装Memcached

    # 切换到资源包目录(我个人所有的资源包都是放在/usr/local/src目录下)
    cd /usr/local/src
    
    # 下载Memcached
    wget http://www.memcached.org/files/memcached-1.6.6.tar.gz
    
    # 解压
    tar -zxvf memcached-1.6.6.tar.gz
    
    # 编译 && 安装
    ./configure --prefix=/usr/local/memcached-1.6.6
    make && make install
    
    # 创建memcached的软连接
    ln -s memcached-1.6.6 memcached
    

    创建软链接的好处

    为什么要创建软连接?因为以后可能会升级到其它版本,在环境变量和开机自启这些地方都使用软连接,这样可以方便以后升级的时候只需要删除旧的软连接重新对新版本创建一个软连接就好了,不需要在去到环境变量和开机自启的这些配置的地方再去修改。

    配置环境变量

    编辑/etc/profile文件,/usr/local/memcached/bin添加到环境变量中

    export PATH="$PATH:/usr/local/memcached/bin"
    

    添加后执行source /etc/profile使修改立即生效

    systemctl管理memcached

    在以前我们来管理Memcached的开机自启的时候我们都是使用的rc.local的方式来设置,但是这样的方式已经过时,在CentOS7中我们应当使用systemctl来管理

    首先我们来看一下使用yum方式安装的memcached都做了啥

    1. 创建一个sbin/nologin类型的名为memcached的用户

      useradd memcached -s /sbin/nologin -M
      
    2. 安装memcached并采用systemctl来管理,memcached.service文件内容如下

      [Unit]
      Description=Memcached 
      Before=httpd.service
      After=network.target
      
      [Service]
      Type=simple
      EnvironmentFile=-/etc/sysconfig/memcached
      ExecStart=/usr/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS
      
      [Install]
      WantedBy=multi-user.target
      
    3. 配置文件放在/etc/sysconfig/memcached

      PORT="11211"
      USER="memcached"
      MAXCONN="1024"
      CACHESIZE="64"
      OPTIONS=""
      

    我们使用的是编译安装,不过我们可以仿照yum方式的行为来管理我们自己编译安装的Memcached服务

    首先,创建一个memcached用户,专门用来管理memcached服务

    useradd memcached -s /sbin/nologin -M
    

    然后在我们的memcached安装目录下创建一个配置文件,添加我们自己的个人配置

    # 创建配置目录
    mkdir /usr/local/memcached/conf
    touch /usr/local/memcached/conf/memcached
    
    # 修改文件所属用户和组
    chown -R memcached:memcached /usr/local/memcached/conf/memcached
    
    # 在/usr/local/memcached/conf/memcached文件中添加如下内容
    PORT="11211"
    USER="memcached"
    MAXCONN="1024"
    CACHESIZE="64"
    OPTIONS=""
    

    然后,在/usr/lib/systemd/system/目录下创建一个memcached.service文件

    touch /usr/lib/systemd/system/memcached.service
    

    并在memcached.service添加如下内容(就是把yum方式的EnvironmentFile和启动路径改了)

    [Unit]
    Description=Memcached 
    Before=httpd.service
    After=network.target
    
    [Service]
    Type=simple
    EnvironmentFile=-/usr/local/memcached/conf/memcached
    ExecStart=/usr/local/memcached/bin/memcached -u $USER -p $PORT -m $CACHESIZE -c $MAXCONN $OPTIONS
    
    [Install]
    WantedBy=multi-user.target
    

    重载daemon

    执行下面的命令重新载入 systemd,扫描新的或有变动的单元

    systemctl daemon-reload
    

    开机自启

    systemctl enable memcached.service # 设置开机自启
    systemctl disable memcached.service # 取消开机自启服务
    

    memcached管理常用命令

    systemctl status memcached.service  # 查看Memcached状态
    systemctl start memcached.service   # 开启Memcached
    systemctl stop memcached.service    # 关闭Memcached
    systemctl reload memcached.service  # 重载配置
    systemctl restart memcached.service # 重启Memcached(相当于stop&start)
    

    可以使用lsof -i:端口号查看Memcached服务

  • 相关阅读:
    大型网站技术架构(七)网站的可扩展性架构
    【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验
    结合案例深入解析模板方法设计模式
    android开发之自定义View 详解 资料整理 小冰原创整理,原创作品。
    1309:【例1.6】回文数(Noip1999)
    jQuery dataTables四种数据来源[转]
    CYQ.Data 轻量数据层之路 使用篇-MProc 存储过程与SQL 视频[最后一集] H (二十八)
    CRM系统项目总结
    同源策略:JSONP和CORS
    forms表单与modelfrom使用
  • 原文地址:https://www.cnblogs.com/itbsl/p/13539583.html
Copyright © 2020-2023  润新知