Redis Python - how to delete all keys according to a specific pattern In python, without python iterating

后端 未结 9 516
暗喜
暗喜 2020-12-25 10:42

I\'m writing a django management command to handle some of our redis caching. Basically, I need to choose all keys, that confirm to a certain pattern (for example: \"prefix:

相关标签:
9条回答
  • 2020-12-25 11:14

    cache.delete(*keys) solution of Dirk works fine, but make sure keys isn't empty to avoid a redis.exceptions.ResponseError: wrong number of arguments for 'del' command.

    If you are sure that you will always get a result: cache.delete(*cache.keys('prefix:*') )

    0 讨论(0)
  • 2020-12-25 11:20

    Btw, for the django-redis you can use the following (from https://niwinz.github.io/django-redis/latest/):

    from django.core.cache import cache
    cache.delete_pattern("foo_*")
    
    0 讨论(0)
  • 2020-12-25 11:20

    You can use a specific pattern to match all keys and delete them:

    import redis
    client = redis.Redis(host='192.168.1.106', port=6379,
                    password='pass', decode_responses=True)
    for key in client.keys('prefix:*'):
        client.delete(key)
    
    0 讨论(0)
提交回复
热议问题