redis / redis/redis-om-python

[Feature Request] Allow default expiry time for a model

Open
#529 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
1.3k
Forks
128
PR merge metrics
No merged PRs in 30d

Description

Currently we are able to set an expiry after saving the model.

class Like(HashModel):
    user_id: str
    liked_user_id: str

    @root_validator()
    def assign_pk(cls, values):
        values["pk"] = f"{values['user_id']}:{values['liked_user_id']}"
        return values

    class Meta:
        database = redis_conn

like1 = Like(user_id="1", liked_user_id="2")
like1.expire(120)

I'd like all my 'Like' instances to have a default expiry time, instead of defining it each time and updating redis in the background.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the HashModel and expire behavior used in the Like example, then inspect how model Meta configuration is handled. Define how a model-level default expiry should apply to newly saved instances and add coverage showing that Like instances receive the configured expiry without calling expire each time.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, redis
Domain
database
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.