#Hi all,

1 messages · Page 1 of 1 (latest)

crude flume
#

I am currently working on a python script to monitor Redis streams. It makes sure that the stream is trimmed within 1 hr. I have also tried limited the max length of the Redis stream. For some reason, the code simply does not work?

Code:

import redis

r = redis.StrictRedis(host='localhost', port=6379, db=0)

stream_name = 'data'
stream_length = r.xlen(stream_name)
print(f"Stream length before trimming: {stream_length}")

trimmed_items = r.xtrim(stream_name, maxlen=2)

stream_length_after = r.xlen(stream_name)
print(f"Stream length after trimming: {stream_length_after}")

Stream:

    1. "1730805885003-1"
      1. "event"
      2. "event_9"
      3. "timestamp"
      4. "1730805700309-0"
    1. "1730805885003-0"
      1. "event"
      2. "event_8"
      3. "timestamp"
      4. "1730805700308-0"
    1. "1730805885002-2"
      1. "event"
      2. "event_7"
      3. "timestamp"
      4. "1730805700307-0"
    1. "1730805885002-1"
      1. "event"
      2. "event_6"
      3. "timestamp"
      4. "1730805700306-0"
    1. "1730805885002-0"
      1. "event"
      2. "event_5"
      3. "timestamp"
      4. "1730805700305-0"
    1. "1730805885001-2"
      1. "event"
      2. "event_4"
      3. "timestamp"
      4. "1730805700304-0"
trim steeple
#

set approximate to False

#

XTrim looks like it sets approximate to True by default, what that means is that it trims down to an approximation (there's some concept a 'block' boundary that I'm not 100% familiar with) - your stream is probably too small to see any trimming at all

crude flume
#

THANKS!!!!!