Redis 및 Python을 사용하는 간단한 Pub-Sub 시스템

4186 단어 redispubsubpython
안녕하세요 여러분 저는 또 다른 블로그 게시물과 함께 여기 있습니다. 이제 Python과 redis를 사용하여 간단한 게시 구독 시스템을 구축하겠습니다.

레디스 서버 실행



내 컴퓨터에서 redis 인스턴스를 시작하기 위해 docker를 사용하고 있습니다. docker를 사용하여 redis 인스턴스를 실행하는 것은 매우 쉽고 redis 인스턴스를 제거하는 것도 매우 쉽습니다. 재미있는 부분은 docker를 통해 실행되는 redis가 시스템에 영향을 미치지 않는다는 것입니다😄

redis 인스턴스 실행

docker run --name demo-redis -p 6379:6379 -d redis:alpine


위의 명령을 통해 실행 중인 redis 인스턴스를 중지하거나 제거하려면 다음을 수행할 수 있습니다.

docker container stop demo-redis # <-- stop the redis instance

docker container rm demo-redis # <-- remove the redis container


게시자 만들기




import redis

# initializing the redis instance
r = redis.Redis(
    host='127.0.0.1',
    port=6379,
    decode_responses=True # <-- this will ensure that binary data is decoded
)

while True:
    message = input("Enter the message you want to send to soilders: ")

    r.publish("army-camp-1", message)


군대에서 publisher as a commander를 생각하고 그는 토양에 메시지를 보내고 싶어하므로 여기에서 그가 메시지를 게시하려는 주제는 army-camp-1입니다. 이 비유는 재미를 위한 것입니다 😂

구독자 만들기




import redis

r = redis.Redis(
    host='127.0.0.1',
    port=6379,
    decode_responses=True
)

# pubsub() method creates the pubsub object
# but why i named it mobile 🧐
# just kidding 😂 think of it as the waki taki that listens for incomming messages
mobile = r.pubsub()

# use .subscribe() method to subscribe to topic on which you want to listen for messages
mobile.subscribe('army-camp-1')

# .listen() returns a generator over which you can iterate and listen for messages from publisher

for message in mobile.listen():
    print(message) # <-- you can literally do any thing with this message i am just printing it



다음은 위의 코드를 실행하는 데모 비디오입니다.

좋은 웹페이지 즐겨찾기