我想知道如何在redis中获得位集的字符串值,我有以下代码:
import redis as redis
def main():
redisClient = redis.StrictRedis(host='localhost', port=6379, db=0)
redisClient.setbit("mybitset",5,1)
bitset=redisClient.get("mybitset")
print bitset # expect the output to be 100000
if __name__=="__main__":
main()
最佳答案
如果我理解正确,redisClient.get("mybitset")
调用将返回一个包含二进制数据的字符串。尝试将print bitset
替换为:
print "{0:b}".format(ord(bitset[0]))
仅当您的位集为一字节长时,这才起作用。如果它跨越多个字节,请尝试使用
struct
模块。例如,如果它是两个字节长(即一个短字节):print "{0:b}".format(struct.unpack(">h", bitset)[0])