Redis扫描命令匹配选项在Python中不起作用

zeb*_*ang 7 python redis

我使用python redis来匹配一些使用匹配选项的信息?但它不起作用.

 import redis
 import REDIS

 class UserCache(object):
    def __init__(self):
       self.rds = self._connectRds() 

    def _connectRds(self):
        _db = REDIS['usercache']
        pool = redis.ConnectionPool(host=_db['HOST'], port= _db['PORT'], db=_db['DB'])
        rds = redis.Redis(connection_pool=pool) 
        return rds 

 cache = UserCahce()
 cache.rds.execute("scan", "0", match="userinfo_*")
Run Code Online (Sandbox Code Playgroud)

似乎匹配选项在scan命令中起作用.

在[68]:cache.rds.execute_command( "扫描", "0",匹配= "userinfo_*")停止[68]:[ '28',[ 'user_dev_20199116', 'devinfo_af85d776fcc9dbc56e3cca16594e1c9ec36fecd10000000001', 'devinfo_dd552211d1b97a825c416aaaf3c62ce8ce4661820000000002',' user_dev_2' , 'userinfo_20130243', 'session_r4XXdvzJ28VuPMoWWU4cnsNv7NEAAAAAAQ ==', 'devinfo_35372afae1de3dbf6a213f659c2814c7b1767f2400013436cc', 'session_3IaTKySREBKjMTAi1puQSwzO20wAAAAAAQ ==', 'session_3VUiEdG5eoJcQWqq88Ys6M5GYYIAAAAAAg ==', 'user_dev_20130243']]

kma*_*mak 23

尝试SCAN命令,如下所示:

r = Redis(....) #redis url
for user in r.scan_iter(match='userinfo_*'):
  print(user)
Run Code Online (Sandbox Code Playgroud)