[英]Python redis client zrangebylex
我想使用Redis的python客戶端執行以下命令
zrangebylex names_sorted_set [a "[a\xff\xff\xff\xff"
但是在我的代碼中,發生以下情況
name = request.GET.get('name', '')
redis_con = redis.StrictRedis(settings.REDIS_HOST, settings.REDIS_PORT)
min = '[' + name
max = '[' + name + """\xff\xff"""
result = redis_con.zrangebylex('names_sorted_set', min, max)
上面的代碼給了我這個錯誤'ascii'編解碼器無法解碼位置0的字節0xff:序數不在range(128)...我嘗試了另一段代碼
redis_con = redis.StrictRedis(settings.REDIS_HOST, settings.REDIS_PORT)
min = '[' + name
max = '[' + name + """\\xff\\xff"""
result = redis_con.zrangebylex('names_sorted_set', min, max)
最后一個將它作為命令提供給redis:
zrangebylex names_sorted_set [a "[a\\xff\\xff\\xff\\xff"
PS:該代碼旨在查找以特定前綴(例如:a)開頭的排序集中的所有字符串。
這個工作了
name = request.GET.get('name', '')
redis_con = redis.StrictRedis(settings.REDIS_HOST, settings.REDIS_PORT)
min = '[' + name
max = bytearray('[') + \
bytearray(name, 'utf-8') + \
b'\xff\xff\xff\xff\xff\xff\xff\xff\xff'
result = redis_con.zrangebylex('names_sorted_set', min, max)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.