OpenIdea

Life is short, I write my code.

Python [3]

陷阱

延迟绑定的闭包 def create_multipliers(): return [lambda x : i * x for i in range(5)] for multiplier in create_multipliers(): print(multiplier(2)) """ output 8 8 8 8 8 """ 错误的解读:与 lambda 有关 d...

Python [2]

多线程、多进程、协程

多线程 from concurrent.futures import ThreadPoolExecutor from time import time def gcd(pair): a, b = pair low = min(a, b) for i in range(low, 0, -1): if a % i == 0 and b % i == 0...

Python [1]

装饰器、上下文管理器、单分发器

装饰器 装饰器本质上就是一个函数,这个函数接收其他函数作为参考,并将其以一个新的修改后的函数替代它。 def wrap(f): return f @wrap def test(): pass 上面的过程类似于: f = wrap(test) 简单装饰器 def check_func(func): def wrapper(*args, **kwargs)...

Docker [5]

磁盘垃圾清理和内存限制

磁盘垃圾清理 不同对象的垃圾清理 docker v1.13 之后提供了对各种对象的 prune 命令,提供对象垃圾处理功能。 # container $ docker container prune WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] # ...

Docker [4]

Portainer —— Docker UI

部署 Portainer docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portain...

Docker [3]

Docker Compose

Docker Compose 简介 Docker Compose 是 Docker 的一种编排服务,是一个用于在 Docker 上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用 docker-compose.yml 文件 官方示例: version: "3" services: redis: image: redis:alpine ports: ...

Docker [2]

Dockerfile

Dockerfile 概念 Dockerfile 是一个文本文件,其内包含了一条条的指令,每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 Dockerfile 文件格式 # 1、第一行必须指定 基础镜像信息 FROM ubuntu # 2、维护者信息 MAINTAINER docker_user docker_user@email.com # 3、镜像操作指令...

Docker [1]

Docker 原理

Docker 核心技术 Docker 核心技术包括: Namespaces Docker 使用 namespaces 提供一个隔离的工作环境即 container Docker Engine 使用以下命名空间: pid 命名空间:进程 net 命名空间:网络 ipc 命名空间:进程间通信 mnt 命名空间:文件挂载点 uts 命名空间:主机名 Contr...

Redis [8]

各种语言使用 Redis

Python 安装依赖 首先需要安装依赖包 redis-py $ pip install redis Getting Started >>> import redis >>> r = redis.Redis(host='localhost', port=6379, db=0) >>> r.set('foo', 'bar') T...

Redis [7]

复制、Sentinel、集群和安全

复制 1、旧版复制功能 旧版的复制功能分为同步和命令传播两个操作: 同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态 命令传播操作则用于在主服务器的数据库状态被修改,导致主从服务器的数据库状态出现不一致时,让主从服务器的数据库重新回到一致状态 2、新版复制功能 新版用 PSYNC(部分重同步) 解决旧版断线重连后 SYNC 的低效 复制相关的配...