Tema: Redis - Data Sharing / PubSub
Demonstrar a comunicacao entre processos distribuidos utilizando Redis como middleware.
- Resposta a uma mensagem de texto
- Alteracao de um arquivo texto no servidor (file.txt)
- Calculo de funcoes matematicas
- Consulta de historico via Pub/Sub ou direto do Redis
- Pub/Sub puro (nao usa Redis Streams)
- 3 workers independentes:
calc_worker: processa operacoes matematicasmessage_worker: processa mensagens de texto e historicofile_worker: altera arquivo texto
- Data Sharing via Redis:
last_calc,last_message,request_history,calc_requests
- Python 3.12 LTS
- Redis 8.6
- Docker
Copie o arquivo de exemplo para .env:
cp .env.example .envNo servidor, deixe o .env assim:
REDIS_HOST=localhost
REDIS_PORT=6379
No cliente (outro notebook), coloque o IP do servidor:
REDIS_HOST=IP_DO_SERVIDOR
REDIS_PORT=6379
Terminal 1 (sobe Redis + workers):
docker compose up -dTerminal 2 (cliente):
python -m pip install -r requirements.txt
python Client/Client.pyNo notebook servidor:
docker compose up -dNo notebook cliente:
python -m pip install -r requirements.txt
python Client/Client.pyO cliente usa o REDIS_HOST configurado no arquivo .env.
Os scripts leem REDIS_HOST e REDIS_PORT do arquivo .env.
Como .env esta no .gitignore, cada maquina pode ter sua propria configuracao sem
alterar o codigo.
Se REDIS_HOST ou REDIS_PORT nao estiverem definidos, o programa mostra erro
e encerra.