docker本地部署memcached附带docker-compose部署memcached/elasticsearch/kibana/php/nginx脚本

docker本地部署memcached附带docker-compose部署memcached/elasticsearch/kibana/php/nginx脚本

一、什么是memcached

Memcached 是一个通用的分布式内存缓存系统。 它通常用于通过在 RAM 中缓存数据和对象来加速动态数据库驱动的网站,以减少必须读取外部数据源(例如数据库或 API)的次数。

Memcached 的 API 提供了一个分布在多台机器上的非常大的哈希表。 当表已满时,后续插入会导致以最近最少使用的顺序清除旧数据。 使用 Memcached 的应用程序通常会将请求和添加分层到 RAM 中,然后再回到较慢的后备存储(例如数据库)上。

二、为什么要使用memcached

在单个服务器的架构内,使用memcached这类缓存的作用是为了减轻数据库的压力,对于更新不频繁的数据,没必要每次都去请求数据库。

同样的,之前我写过的文件缓存也是作用。但是,本地的文件缓存有个缺点,就是不能跨项目使用,我在自己框架内部使用的缓存,我只能自己读写。

那如果我的项目是多个服务器的,或者多端的,api项目和web项目都不是用一个语言实现,那再使用文件

三、部署安装

我们这里使用的是官方的源 Memcached - Official Image | Docker Hub

image-20210918132444146

1. 版本选择

注意的是,如果你用latest,就是默认的最新版本,目前最新版本是1.6。

但是,从实际项目来看,大部分公司的生产环境并不会使用最新的版本,所以必须根据实际情况选择自己适用的版本。

我这里选择的版本是1.4.32

再次强调,任何环境下的版本号都是非常重要的,不能默认使用最新版本!!!

2. 命令行直接安装

docker run -p 11211:11211 --name memcache memcached:1.4.32

如果不指定冒号后面的版本默认就是最新版本。

连接测试

(base) xxxx@xxxx ~ % telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

3. docker-compose 安装

命令行安装有一些缺点,比如

  • 团队成员不好复制
  • 环境配置不好保管
  • 成套环境不好维护

而这些缺点,docker-compose都可以解决。

docker-compose通过维护一个docker-compose.yml的文件,他能把所有的项目环境都整合到一起,做到所有项目成员的环境配置一模一样。

  memcached:
    image: memcached:1.4.32
    ports:
      - 11211:11211

目前我用的docker-compose的本地环境包含了

  • memcached
  • elasticsearch
  • kibana
  • php
  • nginx

本地配置如下,亲测可用。

version: "3"
services:
  memcached:
    image: memcached:1.4.32
    ports:
      - 11211:11211
  elastic:
    image: elasticsearch:6.7.0
#    image: elasticsearch:7.9.3
    ports:
      - "9200:9200"
    environment:
      - bootstrap.system_call_filter=false
#      - node.name=node-1
#      - cluster.initial_master_nodes=node-1
    volumes:
#      - /opt/docker/elasticsearch/data:/usr/share/elasticsearch/data
      - ../elasticsearch-local/data:/usr/share/elasticsearch/data
    networks:
      web:
        ipv4_address: 172.25.0.3
  kibana:
    image: kibana:6.7.0
#    image: kibana:7.9.3
    environment:
      - I18N_LOCALE=zh-CN
      - ELASTICSEARCH_HOSTS=http://172.25.0.3:9200
      - ELASTICSEARCH_URL=http://172.25.0.3:9200
    ports:
      - "5601:5601"
    networks:
      - web
  php:
    image: crunchgeek/php-fpm:7.0
    volumes:
      - ./yii_env.php:/var/www/yii_env.php
      - ./php.ini:/usr/local/etc/php/php.ini
      - ./:/var/www/html
    networks:
      - web
  web:
    image: nginx
    ports:
      - "8001-8009:8001-8009"
    volumes:
      - ./yii_env.php:/var/www/yii_env.php
      - ./:/var/www/html
      - ./default:/etc/nginx/conf.d/default.conf
      - ./localcerts:/etc/nginx/certs
    networks:
      - web

networks:
  web:
    ipam:
      driver: default
      config:
        - subnet: "172.25.0.0/16"

四、总结

  • 推荐本地环境使用docker,部署轻松没负担。
  • 线上环境不推荐使用docker,存在不可忽视的性能损耗。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小雨青年

程序员可以把咖啡转化成代码~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值