python redis 是没有 blpush这个操作的

上面的redis代码里面:
 
class RedisCls:

def __init__(self):
self.conn = self.getConn()

def getConn(self):
try:
r = redis.Redis(host=redisconfig['redis']['host'], port=redisconfig['redis']['port'], db=0,
decode_responses=True, password=redisconfig['redis']['password'], socket_connect_timeout=5)
except Exception as e:
print(e)
raise IOError('connect redis failed')
else:
return r


def get(self, key):
return self.conn.get(key)


def set(self, key, value):
return self.conn.set(key, value)

def pop(self, key):
print('==== pop data ====')
return self.conn.brpop(key)

def push(self, key, value):
print('==== push data ====')
self.conn.blpush(key, value)

20240522092858.png

  
报错:
AttributeError: 'Redis' object has no attribute 'blpush'. Did you mean: 'lpush'?

 
问题在于这一句:

self.conn.blpush(key, value)
 
python redis里面是没有blpush这个操作的。
也就是没有阻塞插入这个动作。 比如一个list满了,就阻塞插入数据,在python redis里面是没有这个操作。
你可以用llen 先判读一下长度,然后再决定是否插入就可以了。
 
 

0 个评论

要回复文章请先登录注册