Python의 Redis PubSub

4900 단어 pythonredispubsub
PubSub에 대한 의견 수렴, 고객 및 서비스에 대한 의견 수렴에 대한 의견 수렴.

기본적으로, temos um publicador de um lado e um ouvinte do outro aguardando um dado. De forma simplificada — caso você ainda não tenha lido sobre isso, é como o Professor lá na frente explicando uma matéria e do outro lado, 40 alunos na mesma sala anotando tudo aquilo que escutam.

괜찮습니까?

시스템은 RabbitMQ, ZeroMQ, Kafka 및 Nats.io를 통해 솔루션을 홍보하고 임플란트를 이식할 때 코드를 배포하지 않고 주변 환경과 다른 방식으로 배포할 수 있습니다.

탐색자 없음, Websocket 또는 EventSource에 대한 커뮤니케이션을 수행할 수 없음, 이벤트 소스 및 퍼블리셔 및 베이트 파포에 대한 다중 사용자 지정, 형식 구분 없음. O Websocket é um sistema de 2 via onde ele pode ser o publicador e ouvinte, enquanto no EventSource uma única via é utilizada na comunicação do servidor com os clientes.

Redis , conhecido pela sua velocidade, já possui nativamente a funcionalidade para PubSub sem a necessidade de configurações adicionais, mas com suas limitações onde nas ferramentas citadas teremos soluções mais robustas, com persistência de dados, streaming e por aí vai... Mas estamos aqui para 팔라 할 Redis PubSub .

Botando o Redis pra funcionar



Testes, você pode subir um container na sua maquina mesmo para o Redis utilizando o Docker.

docker run -ti --rm -p 6379:6379 --name pubsub redis:alpine


Como Redis ativo, abra uma nova aba/janela da sua linha de comando para testarmos o canal pythonpubsub como ouvinte.

docker exec -ti pubsub redis-cli subscribe pythonpubsub


Para testarmos a publicação no mesmo canal, abra uma nova aba/janela na sua linha de comando e vamos ver a máquina acontecer.

docker exec -ti pubsub redis-cli publish pythonpubsub "eu sou uma mensagem"


Divertido, né?... Mas aí você se pergunta sobre a velocidade e nesta aba/janela que você publicou a mensagem, vamos fazer um for simples para publicar 10000 mensagens.

for i in {1..10000}; do
    docker exec -ti pubsub redis-cli publish pythonpubsub "mensagem $i";
done


Agora que configuramos o ambiente como container Redis e testamos o PubSub, feche todas as janelas mantendo apenas a aba/janela da sua linha de comando onde o servidor Redis está rodando. 파이썬에서 코딩을 간단하게 하기 위해 노력해야 합니다. Tão simples que é bem próximo do que fizemos até agora e isso vai ampliar seus horizontes.

파이썬 코드를 작성하는 방법



마스... 파이썬? 그래서 파이썬? 나오! 예를 들어 Python - NodeJS, PHP, Golang, Java와 동등한 언어를 선호하는 언어를 사용할 수 있는 다른 언어를 사용할 수 있습니다.

Aqui는 Python 3.9.13 버전을 사용하는 로컬 Máquina를 사용하고 있으며, 최신 버전 3.6 이상에서 호환성 문제를 테스트했습니다.

어떤 경우에도 파이썬은 중요하지 않습니다. 환경 가상 환경에서 의존적 프로젝트로 고립된 자산 포사모스는 항상 중요합니다.

python3 -m venv venv


Redis에 연결된 라이브러리에 종속된 설치 환경 가상 환경이 설정됩니다.

. venv/bin/activate


biblioteca redis를 설치합니다.

pip3 install redis


Crie um arquivo chamado app.py e nele, vamos inserir o nosso código de subscriber como um daemon que se manterá até o encerramento do programa (o famoso ctrl+c).

from redis import StrictRedis

client = StrictRedis(host="localhost", port=6379)

pubsub = client.pubsub()
pubsub.subscribe('pythonpubsub')

while True:
    msg = pubsub.get_message()

    if msg:
        if not isinstance(msg['data'], int):
            channel, message = msg['channel'], msg['data']
            print('%s: %s' % (channel.decode('utf-8'), message.decode('utf-8')))


arquivo app.py를 탔습니다.

python3 app.py


Junto com aplicação já rodando, abra outra aba/janela na sua linha de comando e deixe o subscriber do Redis rodando do lado.

docker exec -ti pubsub redis-cli subscribe pythonpubsub


que criamos lá em cima를 위한 Sabe aquele? Abra uma nova aba/janela da sua linha de comando e vamos ver as mensagens sendo propagadas em ambas as janelas.

for i in {1..10000}; do
    docker exec -ti pubsub redis-cli publish pythonpubsub "mensagem $i";
done


법적으로 괜찮습니까? 당신은 리팩토링이 필요로 하는 중대한 작업과 같은 알고리즘 응용 프로그램과 병렬 처리 속도를 유지하기 위해 알고리즘을 분석해야 합니다.

Espero que você tenha curtido. Sigo aberto a sugestões e boas idéias.

좋은 웹페이지 즐겨찾기