Windos usa Docker para implantar a versão mais recente do Redis e fazer links externos

fundo

Recentemente, estou desenvolvendo um site de comércio eletrônico baseado em Django e usando o Redis para armazenar em cache as informações do produto. Como uso o Windows para desenvolvimento, o próprio Redis não oferece suporte a sistemas Windows. Existem apenas algumas maneiras de verificar muitas informações. Win10 e acima suportam o subsistema WSL. Considerando que o Github não pode usar a versão mais recente na primeira vez, o próprio WSL é instável e outros fatores, use o Docker para implantar a imagem Rdis para resolver o problema do Windows usando Redis.


Atualização de 30/07/2022
Outro uso do Docker foi descoberto durante o processo de desenvolvimento. Ao criar um novo contêiner de imagem Python no Docker, problemas como a falta de compiladores no ambiente Windows podem ser resolvidos. O uso direto de mapeamento de arquivo e mapeamento de porta pode resolver o problema do ambiente de desenvolvimento Python.Problemas de implantação.

Problemas conhecidos:

  1. O uso do Docker para implantação de ambiente não pode pular diretamente para o local do erro de código por meio do Pycharm.
  2. A função de depuração do ponto de interrupção não pode ser usada porque a linha de comando e o Pycharm são separados.

Preparação

  1. versão mais recente do docker
  2. Arquivo compactado da versão mais recente do Redis
  3. Software de controle gráfico Redis RDM
  4. mercado de espelhos Docker

iniciar implantação

Instalar o Redis

Baixe e instale o Redis diretamente. Após a conclusão da instalação, abra o prompt de comando e use o seguinte código para instalar o Redis. Você também pode usar a interface gráfica para instalar.

#在docker仓库搜索redis
docker search redis
#下载redis到本地仓库不加版本号默认是最新版
docker pull redis
#查看下载好的容器
docker images

Se o download for bem-sucedido, o efeito exibido ao usar o comando é o mostrado na figura

nome do rótulo significado do rótulo
REPOSITÓRIO O rótulo indica o nome da imagem atualmente baixada
MARCAÇÃO Indica a versão do espelho atual
ID DA IMAGEM É o ID definido pelo próprio Docker para a imagem
CRIADA Indica quando a imagem foi criada
TAMANHO Indica o tamanho da imagem

Se o conteúdo acima puder ser exibido com sucesso, isso significa que o Redis foi instalado com sucesso. Então, precisamos descompactar o pacote compactado do Redis baixado anteriormente, descompactar o arquivo redis.config e modificá-lo.

Modifique o arquivo de configuração do Redis

No arquivo de configuração padrão do Redis, apenas a conexão local é permitida e, ao mesmo tempo, é executada no modo protegido e a conexão remota não é permitida. No desenvolvimento real, existem muitos inconvenientes e alguns conteúdos do arquivo de configuração precisam ser modificados.

antes de consertar após a modificação efeito
ligar 127.0.0.1 ligação 0.0.0.0 Permitir conexões externas
modo protegido sim modo protegido não Desativar modo protegido
anexar apenas não anexar apenas sim Habilitar persistência
requer senha " " requirepass A senha que você precisa definir configurar senha

Entre essas configurações, há um # na frente de algumas configurações, e o # pode ser excluído para que a configuração tenha efeito

Iniciar Redis

Após modificar o arquivo de configuração, registre a localização do arquivo de configuração, salvei na área de trabalho, então o caminho é

C:\Users\TOM\Desktop\redis.conf

Em seguida, use este caminho para iniciar o Redis. O código de inicialização específico é o seguinte:

docker run -p 6379:6379 --name iredis -v C:\Users\TOM\Desktop\redis.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data -d redis:latest redis-server /etc/redis/redis.conf --appendonly yes

Análise de parâmetros:

nome do parâmetro efeito
janela de encaixe Chame o comando docker para iniciar o contêiner
correr iniciar um contêiner
-p 6379:6379 Mapeie a porta 6379 no contêiner com a porta 6379 do host
–nome iredis O contêiner é chamado de iredis
-v Caminho do arquivo de configuração modificado: caminho de configuração no Docker Mapeie e substitua o arquivo de configuração local pelo arquivo de configuração no Docker
-v local persistente caminho do arquivo de salvamento: o caminho persistente padrão no Docker Substitua o caminho de salvamento persistente
-d Execute em segundo plano, você pode excluir este parâmetro se não precisar dele
redis:mais recente Execute a imagem cujo TAG é o mais recente na imagem redis
redis-server /etc/redis/redis.conf Os parâmetros de inicialização padrão, o arquivo de configuração aqui foi substituído pelo arquivo de configuração na área de trabalho
–acrescentar apenas sim Ative o AOF para obter persistência de dados

O resultado após a inicialização bem-sucedida é mostrado na figura.
insira a descrição da imagem aqui
Se o parâmetro -d for removido, o resultado da execução será como mostrado na figura:
insira a descrição da imagem aqui
Até agora, o trabalho de implantação do Redis no contêiner do Docker no Windows foi concluído e a próxima etapa é usar o software RDM para conectar-se ao Django na máquina host.

Conexão remota

banco de dados de conexão RDM

Primeiro instale nosso software RDM e conecte-se após a conclusão da instalação.
insira a descrição da imagem aqui
Análise de parâmetros

nome do parâmetro efeito
Nome Dê um nome ao link atual, basta digitar um que você possa entender
Hospedar O IP onde está localizado o Redis, usamos o deploy do Docker local, então preencha o IP da máquina host, o local é 127.0.0.1 ou pode preencher localhost, os dois são equivalentes
Porta O número da porta mapeado pelo contêiner do Docker, ou seja, o último número da porta preenchido no parâmetro -p no prompt de comando. Como usamos -p 6379:6379 para demonstração, preencha 6379. Se você mesmo especificar outras portas, preencha na porta que você especificou
autenticação Preencha a senha do parâmetro requirepass no arquivo de configuração

Depois de preencher, clique em Test Connection abaixo para testar o link e clique em OK para salvar a conexão depois que uma página bem-sucedida aparecer.
insira a descrição da imagem aqui
À esquerda, você pode ver que o banco de dados Redis foi conectado com sucesso.

Django se conecta ao banco de dados

Depois de jogar por um longo tempo, finalmente posso me conectar ao banco de dados. O Django oferece suporte ao uso do Redis para armazenamento em cache. Aqui, precisamos baixar a biblioteca de terceiros correspondente para conectar ao Redis.

# 直接下载 django-redis
pip install django_redis
# 通过豆瓣源加速下载
pip install -i https://pypi.douban.com/simple django_redis

Após a conclusão da instalação, abra o arquivo setting.py no projeto para configuração

# redis配置
CACHES = {
    
    
	# 设置名为 default 的链接
    "default": {
    
    
    	# 设置缓存功能
        "BACKEND": "django_redis.cache.RedisCache",
        # 设置 redis 的链接路径
        "LOCATION": "redis://default:redis@localhost:6379/0", # 安装redis的主机的 IP 和 端口
        "OPTIONS": {
    
    
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {
    
    
                "max_connections": 1000,
                "encoding": 'utf-8'
            },
        # 添加 redis 的密码
        "PASSWORD": "redis"
        }
    }
}

Depois que a configuração estiver concluída, use o shell que vem com o django para testar

# 启动 Django 自带的命令行
python .\manage.py shell

Teste após o lançamento

# 导入 django-redis 库
from django_redis import get_redis_connection
# 使用 dafult 配置进行连接
con = get_redis_connection('default')
# 测试是否连接成功
con.ping()
# 测试成功结果
>>> con.ping()
True

Docker implanta imagens Python

O Docker extrai a versão da imagem correspondente

# 拉取 Python38 版本镜像
docker pull rackspacedot/python38
# 查看下载结果
docker ps -a
|CONTAINER ID|IMAGE|COMMAND|CREATED|STATUS|PORTS|NAMES|
|e5cedc7e1e2d|python:3.8|"python3"|21 hours ago|Exited (137)|20 hours ago|
# 新建镜像容器,并配置文件目录映射
docker run -it -p 宿主机端口:容器端口 -v 宿主机目录:容器目录 --name 自定义的名字  镜像名称:镜像tag
docker run -it -p 8080:8080 -v c:\Destop\DjangoCode:/Code --name Python_Django python:3.8
# 启动镜像容器
docker start Python_Django
# 进入容器的交互命令终端
docker exec -it 容器id /bin/bash
docker exec -it e5cedc7e1e2d /bin/bash

Conexões para contêineres do Docker

conexão bidirecional

Crie uma rede por meio do comando network do Docker e adicione todos os contêineres à rede. Os contêineres na rede podem ser acessados ​​diretamente por meio do ID do contêiner ou do nome do contêiner. O endereço oficial do documento

# 创建容器网络
docker network create [OPTIONS] NETWORK
docker netword create ContainNetwork
# 将容器加入网络
docker network connect [OPTIONS] NETWORK CONTAINER
dokcer network connect ContainNetwork reids

conexão unidirecional

A conexão única usa o parâmetro --link de configuração anterior do Docker, que pode ser descartado no futuro, preste atenção para usar

# 连接容器A和容器B,只能A访问B,B无法访问A,需在创建容器时就指定需要连接的关系
docker run 容器A --link 容器B 
docker run Python_Django --link redis --link mysql # 可单向连接多个容器

Até agora, todo o conteúdo que precisa ser configurado foi concluído. Amigos que precisam de ajuda podem enviar uma mensagem interna ou e-mail para [email protected]. Se você vir, você responderá. Pode não ser oportuno devido ao ocupado trabalho recentemente.

Acho que você gosta

Origin blog.csdn.net/qq_20728575/article/details/125639618
Recomendado
Clasificación