Redis 扫描命令匹配选项在 Python 中不起作用 [英] Redis scan command match option does not work in Python

查看:37
本文介绍了Redis 扫描命令匹配选项在 Python 中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I use python redis to match some infomation by using match option? but it doesn't work.

 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_*")

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

It seems that match option does work in scan command.

在[68]中:cache.rds.execute_command("scan", "0", match="userinfo_*")出[68]:['28',['user_dev_20199116','devinfo_af85d776fcc9dbc56e3cca16594e1c9ec36fecd10000000001','devinfo_dd552211d1b97a825c416aaaf3c62ce8ce4661820000000002','user_dev_2','用户信息_20130243','session_r4XXdvzJ28VuPMoWWU4cnsNv7NEAAAAAAQ==','devinfo_35372afae1de3dbf6a213f659c2814c7b1767f2400013436cc','session_3IaTKySREBKjMTAi1puQSwzO20wAAAAAAQ==','session_3VUiEdG5eoJcQWqq88Ys6M5GYYIAAAAAAAg==','user_dev_20130243']]

In [68]: cache.rds.execute_command("scan", "0", match="userinfo_*") Out[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']]

推荐答案

像这样试试 SCAN 命令:

Try the SCAN command like this :

r = Redis(....) #redis url
for user in r.scan_iter(match='userinfo_*'):
  print(user)

这篇关于Redis 扫描命令匹配选项在 Python 中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆