Windos usa Docker para implementar la última versión de Redis y crear enlaces externos

fondo

Recientemente, estoy desarrollando un sitio web de comercio electrónico basado en Django y uso Redis para almacenar en caché la información del producto. Dado que uso Windows para el desarrollo, Redis en sí no es compatible con los sistemas Windows. Solo hay algunas formas de verificar mucha información. Win10 y superiores admiten el subsistema WSL.Teniendo en cuenta que Github no puede usar la última versión la primera vez, WSL en sí mismo es inestable y otros factores, use Docker para implementar la imagen Rdis para resolver el problema de Windows usando Redis.


2022.7.30 Actualización
Se descubrió otro uso de Docker durante el proceso de desarrollo. Al crear un nuevo contenedor de imágenes de Python en Docker, se pueden resolver problemas como la falta de compiladores en el entorno de Windows. El uso directo del mapeo de archivos y el mapeo de puertos puede resolver el problema del entorno de desarrollo de Python Problemas de implementación.

Problemas conocidos:

  1. El uso de Docker para la implementación del entorno no puede saltar directamente a la ubicación del error de código a través de Pycharm.
  2. La función de depuración de puntos de interrupción no se puede utilizar porque la línea de comandos y Pycharm están separados.

Preparación

  1. última versión de la ventana acoplable
  2. Archivo comprimido de la última versión de Redis
  3. Software de control gráfico Redis RDM
  4. Mercado de espejos de Docker

iniciar el despliegue

Instalar Redis

Descargue e instale Redis directamente. Una vez completada la instalación, abra el símbolo del sistema y use el siguiente código para instalar Redis. También puede usar la interfaz gráfica para instalar.

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

Si la descarga es exitosa, el efecto que se muestra al usar el comando es como se muestra en la figura

Nombre de etiqueta significado de la etiqueta
REPOSITORIO La etiqueta indica el nombre de la imagen descargada actualmente
ETIQUETA Indica la versión del espejo actual
ID DE IMAGEN Es el ID establecido por el propio Docker para la imagen.
CREADO Indica cuándo se creó la imagen.
TAMAÑO Indica el tamaño de la imagen.

Si el contenido anterior se puede mostrar con éxito, significa que Redis se ha instalado correctamente. Luego, debemos descomprimir el paquete comprimido de Redis descargado previamente, descomprimir el archivo redis.config y modificarlo.

Modificar el archivo de configuración de Redis

En el archivo de configuración predeterminado de Redis, solo se permite la conexión local y, al mismo tiempo, se ejecuta en modo protegido y no se permite la conexión remota.En el desarrollo real, hay muchos inconvenientes y algunos contenidos del archivo de configuración. necesita ser modificado.

antes de arreglar después de la modificación efecto
enlazar 127.0.0.1 enlazar 0.0.0.0 Permitir conexiones externas
modo protegido sí modo protegido no Deshabilitar el modo protegido
añadir solo no solo si Habilitar persistencia
requiere pasar " " requirepass La contraseña que necesita establecer configurar la clave

Entre estas configuraciones, hay un # delante de algunas configuraciones, y el # se puede eliminar para que la configuración surta efecto.

Iniciar Redis

Después de modificar el archivo de configuración, registre la ubicación del archivo de configuración, lo guardé en el escritorio, por lo que la ruta es

C:\Usuarios\TOM\Escritorio\redis.conf

A continuación, utilice esta ruta para iniciar Redis. El código de inicio específico es el siguiente:

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álisis de parámetros:

nombre del parámetro efecto
estibador Llame al comando docker para iniciar el contenedor
correr iniciar un contenedor
-p6379:6379 Asigne el puerto 6379 en el contenedor con el puerto 6379 del host
–nombre iredis El contenedor se llama iredis.
-v Ruta del archivo de configuración modificada: ruta de configuración en Docker Asigne y reemplace el archivo de configuración local con el archivo de configuración en Docker
-v ruta del archivo guardado persistente local: la ruta persistente predeterminada en Docker Reemplace la ruta de guardado persistente
-d Ejecutar en segundo plano, puede eliminar este parámetro si no lo necesita
redis:último Ejecute la imagen cuya ETIQUETA sea la última en la imagen redis
servidor redis /etc/redis/redis.conf Los parámetros de inicio predeterminados, el archivo de configuración aquí ha sido reemplazado por el archivo de configuración en el escritorio
–apendonly sí Active AOF para lograr la persistencia de datos

El resultado después de un inicio exitoso es como se muestra en la figura.
inserte la descripción de la imagen aquí
Si se elimina el parámetro -d, el resultado de la ejecución es como se muestra en la figura:
inserte la descripción de la imagen aquí
Hasta ahora, el trabajo de implementación de Redis en el contenedor Docker en Windows se ha completado y el siguiente paso es usar el software RDM para conectarse con Django en la máquina host.

Conección remota

Base de datos de conexión RDM

Primero instale nuestro software RDM y conéctese después de completar la instalación.
inserte la descripción de la imagen aquí
Análisis de parámetros

nombre del parámetro efecto
Nombre Asigne un nombre al enlace actual, solo ingrese uno que pueda entender
Anfitrión La IP donde se encuentra Redis, usamos la implementación local de Docker, así que complete la IP de la máquina host, la local es 127.0.0.1 o puede completar localhost, los dos son equivalentes
Puerto El número de puerto asignado por el contenedor de Docker, es decir, el último número de puerto que completó el parámetro -p en el símbolo del sistema. Dado que usamos -p 6379:6379 para la demostración, complete 6379. Si especifica otros puertos usted mismo, complete en el puerto que especificaste
autenticación Complete la contraseña del parámetro requirepass en el archivo de configuración

Después de completar, haga clic en Probar conexión a continuación para probar el enlace y haga clic en Aceptar para guardar la conexión después de que aparezca una página exitosa.
inserte la descripción de la imagen aquí
A la izquierda, puede ver que la base de datos de Redis se ha conectado correctamente.

Django se conecta a la base de datos

Después de lanzar durante mucho tiempo, finalmente puedo conectarme a la base de datos. Django admite el uso de Redis para el almacenamiento en caché. Aquí necesitamos descargar la biblioteca de terceros correspondiente para conectarnos a Redis.

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

Una vez completada la instalación, abra el archivo setting.py en el proyecto para la configuración

# 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"
        }
    }
}

Una vez completada la configuración, use el shell que viene con django para probar

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

Prueba después del lanzamiento

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

Docker implementa imágenes de Python

Docker extrae la versión de imagen correspondiente

# 拉取 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

Conexiones para contenedores Docker

conexión bidireccional

Cree una red a través del comando de red de Docker y agregue todos los contenedores a la red. Se puede acceder directamente a los contenedores en la red a través de la identificación del contenedor o el nombre del contenedor. La dirección del documento oficial

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

conexión unidireccional

La conexión única utiliza la configuración anterior de Docker --parámetro de enlace, que puede descartarse en el futuro, preste atención al uso

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

Hasta ahora, se ha completado todo el contenido que debe configurarse. Los amigos que necesiten ayuda pueden enviar un mensaje interno o enviar un correo electrónico a [email protected]. Si lo ve, responderá. Puede que no sea oportuno debido a que está ocupado trabajo recientemente.

Supongo que te gusta

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