Redis Stream

레디스 스트림은 크게 두 가지가 있다.

레디스 스트림과 Pub/Sub 와 유사하지만 주요 차이점은 메시지 지속성과 메시지 사용 방식이 다릅니다.

Pub/Sub는 일시적인 메시지의 브로드 캐스팅에 의존하지만(구독하지 않으면 메시지를 놓치는 경우), Redis Steram은 스트림이 끝날 때까지 메시지를 유지하는 방식을 사용합니다.

Consuming records와의 차이는 Pub/Sub가 서버에 구독을 한다는 것입니다. Redis Steramin 폴링이 활성화 되어 있는 동안 Redis는 메시지를 클라이언트에 푸시합니다.

Appending

Appending을 사용하려면 RedisConnection 또는 StreamOperations가 있습니다. RedisConnection은 byte 배열이 필요하지만 StreamOperations은 객체를 전달할 수 있습니다.

// byte Array
val redisConnection = ...
val steramin = message.toByteArray()
val record = StreamRecords.rawBytes(...).withStreamKey(stream)
con.xAdd(record)

// Object
val redisTemplate = ...
val record: StringRecord = StreamRecords.string(...).withStreamKey("my-stream")
redisTemplate.streamOps().add(record);

Consuming

클라이언트에서 하나 이상의 스트림을 사용할 수 있습니다. Redis 스트림은 읽기 명령을 제공합니다.(랜덤)

스트림 내에서 읽기 가능한 부분 또는 새로운 레코드에 대한 읽기 명령을 제공합니다.

RedisConnection에서 xRead 및 xReadGroup 메소드를 제공합니다.