| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- WMTS
- raster2pgsql
- GeoServer
- 3D tiles
- QGIS
- PDAL
- attribute Selector
- GDAL
- PointCloud
- threejs
- Line Dashed
- VWORLD
- anotherdxfimporter
- pg_notify
- GIS
- display:flex
- gdal2tiles
- DXF
- Potree
- 3DTiles
- PostgreSQL
- line width
- PostGIS
- extent linestring
- Cesium
- css
- CesiumJS
- publish/subscribe
- jupyternotebook
- georeferrencing
- Today
- Total
코드조각 저장소
Managing a Redis Stream 본문

Redis 스트림은 최근 실시간 다중 프로세스 애플리케이션을 구축 할 때 제가 가장 좋아하는 Redis 기능이었습니다. 데이터 보존 기능은 Redis PUBSUB보다 강력하며 여러 소비자 및 소비자 그룹을 사용하면 대기열에 비해 사용하기가 더 쉽습니다.
Redis 스트림은 로그 데이터 구조로 작동합니다. 스트림에 더 많은 항목을 추가하면 메모리가 증가하고 일부 작업에 영향을 미칠 수 있습니다. 항목 수를 제한하려면 Redis에 제한된 항목 수로 스트림을 제한하도록 지시 할 수 있습니다.
XADD mystream MAXLEN ~ 1000 * <key> <value> [<key <value> ...]
Redis는 MAXLEN에 지정된 항목 수에 도달하면 가장 오래된 항목에서 스트림을 자릅니다. ~는 Redis에 사용자가 정확히 최대 용량을 1000으로 요청하지 않음을 알려줍니다. Redis가 항목 삭제를 시작하기 전에 스트림에 명령에 지정된 것보다 많은 항목이있을 수 있습니다.
Since trimming is an expensive operation, you can design your applications to delete messages after retrieved from the stream with XDEL . This might not be ideal if you have external logging services that also consume from the streams. Currently, Redis streams only support max size but there’s been a bit of discussion on a time-based
EXPIRE 명령으로 스트림에 TTL을 추가 할 수 있습니다. 이것은 개별 항목이 아닌 전체 스트림에서 작동합니다. 키를 기반으로 여러 스트림을 생성하도록 애플리케이션을 설계 할 수 있지만 Kinesis 샤드를 생각해보십시오. 그런 다음 구성된 시간을 기준으로 각 스트림의 TTL을 설정합니다. MAXLEN을 EXPIRE 명령과 결합하여 각 스트림의 시간 기반 및 메모리 기반 관리를 모두 가질 수 있습니다