레디스 II 탐색.Redis Stream.

3958 단어 redis

소개하다.


그동안 리디스에 대한 제 게시물의 연장선상입니다.이 예에서, 나는 Stream이라는 새로운 Redis 데이터 형식의 사용을 간략하게 소개할 것이다. 이것은 매우 새롭지는 않지만 매우 유용하다.

선결 조건


예전과 같다

시냇물


응용 프로그램에서 로그를 사용한 적이 있습니까?네, 프로그램의 행동을 추적하기 위해 컨트롤러나 파일에 쓴 메시지입니다.이것은 응용 프로그램의 생명 주기의 특정 시간 내에 무슨 일이 발생했는지 알아보려고 시도할 때 매우 유용할 수 있다.Redis의 흐름은 이렇습니다. 흐름에 추가된 모든 사건의 기록과 같습니다.로그 사용을 멈추고 Redis를 시작해야 한다는 말은 아니에요.아니, 내가 너에게 말하고자 하는 것은 그것의 행동이 매우 비슷하다는 것이다.이 두 가지 상황에서, 당신은 언제든지 방문하고 싶은 데이터 흐름을 가지고 있으며, 여러 클라이언트에서 여러 번 방문할 수 있습니다.

설명도에서 소비자들은 순서대로 데이터를 얻을 수 있을 것 같지만 실제로는 흐르는 모든 범위의 데이터를 요청할 수 있다.'1부터 10까지의 날짜를 주세요'는 말처럼 당신이 소비하고 싶은 것에 대한 매우 구체적인 데이터를 직접 요청할 수 있습니다.사용자가 데이터를 사용한 후에 다른 소비자들은 같은 데이터를 요청할 수 있기 때문에 데이터 요청은 흐름에서 튀어나오거나 삭제되지 않습니다.그것의 실제 효과를 봅시다.

설치 프로그램


이전 강좌의 설정과 거의 같습니다. 유일한 차이점은 Redis cli 실례만 있으면 된다는 것입니다.

흐름에 요소 추가하기


XADD twitt_feeds * date 01-07-21 username Gealber
이 문법을 분리하자면 처음에는 좀 혼란스러울 수도 있다.첫 번째 섹션은 스트림에 데이터를 첨부할 수 있는 XADD 명령입니다.twitt_feeds는 흐름의 이름이고 다른 입력 문자*입니다. 이것은 Redis가 데이터의 ID를 지정하지 않고 서버에 이 ID를 할당해 달라고 요청하는 방식입니다.마지막 부분date 01-07-21 username Gealber은 당신이 저장하고자 하는 실제 데이터를 대표한다. 이 예에서 첫 번째 부분은 date 01-07-21이고 다른 한 부분은 username Gealber이다.
지금 직접 시도해 보면 서버에서 생성된 ID를 반환합니다. 생성된 ID의 형식은 다음과 같습니다.
<millisecondsTime>-<sequenceNumber>
일반적으로 말하면, 너는 스스로 이것을 제공하고 싶지 않지만, 만약 네가 원한다면, 너는🤷‍♂️.

데이터 조회


만약 당신이 흐르는 모든 데이터를 원한다면, 우리가 어떻게 요청할 수 있습니까?이것은 똑똑하지 않을 수도 있다는 것을 감안하면, 이것은 당신의 흐름의 크기에 달려 있다. 당신도 부탁할 수 있고, 우리는 이 점을 어떻게 하는지 볼 것이다.
XRANGE twitt_feeds - +
음...-+, 이 문자들은 특별한 의미가 있습니까?이런 상황에서 당신은'흐름 속의 첫 번째 데이터부터 마지막 데이터까지의 데이터를 주세요'라고 말할 수 있기 때문에 기본적으로 당신은 모든 데이터를 요청하고 있습니다.
현재 흐름 중의 마지막 세 개의 데이터를 가져오고 싶다면,
XRANGE twitt_feeds + - COUNT 3
이런 상황에서 당신은'나에게 마지막 데이터에서 흐름 속의 첫 번째 데이터를 주지만 그중의 3개만 준다'고 말할 것이다. 그래서'마지막 세 요소'.멋있죠?
ID 형식에 따라 특정 타임스탬프에서 요청할 수도 있습니다<millisecondsTime>-<sequenceNumber>.예를 들어, 특정 시간 내에 요소를 요청할 수 있습니다.
XRANGE twitt_feeds 1625161017441 1625162015154
이 두 개의 긴 숫자는 ID의 밀리초 수를 나타냅니다. 여기서 요청한 데이터는 16251610174411625162015154 사이입니다.실제 응용 프로그램에서 이것은 매우 유용합니다. 당신은 일정 시간 내에 발생하는 정보를 요청할 수 있습니다.

요청 스트림 크기


어떤 경우, 흐름의 크기를 알고 싶을 수도 있습니다. 흐름의 모든 데이터를 물어보고, 흐름이 매우 크면 매우 편리할 수 있습니다.크기를 미리 알면'나는 모든 것을 원한다'는 생각을 버리고 똑똑한 방식으로 요구할 수도 있지만, 그것은 나일 뿐이다. 모든 것을 원한다면 모든 것을 얻을 수 있다.어쨌든 이것은:
XLEN twitt_feeds
이것은 흐름의 원소 수를 되돌려줍니다.

Redis Stream 실행 중, 훌륭한 리소스


나는 최근에 이 시리즈들을 발견했다. 이 녀석이 어떻게 이 간단한 생각을 실용적인 응용 프로그램에 응용했는지, 매우 재미있어서 틀림없이 볼 만하다.

결론


나는 이 점을 상세하게 논술하지 않을 것이다. 왜냐하면 나는 본고가 이 부분에 관한 더 좋은 문서를 제공할 수 있다고 생각하기 때문이다.Redis라는 기능에 대한 정보가 정말 많은데, 내 목적은 네가 그것을 알게 하는 것이다.이제 그것으로 아주 멋진 프로그램을 만들어 보세요. 그러면 잊지 않을 거예요.나는 또한 당신에게 사용하고 배울 수 있는 문서를 제공할 것입니다.다음 부분에서 저는 레드스를 믿을 만한 대기열로 사용할 거예요. 좋죠?😎.

참고 문헌

  • Stream Intro
  • How to use Redis for real-time stream processing
  • How to use Redis Stream
  • 좋은 웹페이지 즐겨찾기