88 lines
2.8 KiB
Python
88 lines
2.8 KiB
Python
![]() |
import redis
|
||
|
|
||
|
|
||
|
class RedisUtil:
|
||
|
def __init__(self, host, port, db, password):
|
||
|
self.host = host
|
||
|
self.port = port
|
||
|
self.db = db
|
||
|
self.password = password
|
||
|
|
||
|
def scan(self, match: str):
|
||
|
keys = []
|
||
|
res = redis.StrictRedis(host=self.host, port=self.port, db=self.db, password=self.password)
|
||
|
try:
|
||
|
cursor = 0
|
||
|
while True:
|
||
|
tup = res.scan(cursor=cursor, match=match, count=1000)
|
||
|
print(tup)
|
||
|
if isinstance(tup[0], int):
|
||
|
cursor = tup[0]
|
||
|
if isinstance(tup[1], list):
|
||
|
keys.extend(tup[1])
|
||
|
if cursor == 0:
|
||
|
break
|
||
|
except Exception as e:
|
||
|
print('scan is error.', e)
|
||
|
finally:
|
||
|
res.close()
|
||
|
return keys
|
||
|
|
||
|
def delete(self, name: str):
|
||
|
res = redis.StrictRedis(host=self.host, port=self.port, db=self.db, password=self.password)
|
||
|
try:
|
||
|
res.delete(name)
|
||
|
except Exception as e:
|
||
|
print('delete ', name, ' is error.', e)
|
||
|
finally:
|
||
|
res.close()
|
||
|
|
||
|
def hgetall(self, name: str):
|
||
|
data = None
|
||
|
res = redis.StrictRedis(host=self.host, port=self.port, db=self.db, password=self.password)
|
||
|
try:
|
||
|
data = res.hgetall(name)
|
||
|
except Exception as e:
|
||
|
print('hget ', name, ' is error.', e)
|
||
|
finally:
|
||
|
res.close()
|
||
|
return data
|
||
|
|
||
|
def hincrby(self, name: str, field, increment):
|
||
|
res = redis.StrictRedis(host=self.host, port=self.port, db=self.db, password=self.password)
|
||
|
try:
|
||
|
res.hincrby(name, field, increment)
|
||
|
except Exception as e:
|
||
|
print('hincrby ', name, ' is error.', e)
|
||
|
finally:
|
||
|
res.close()
|
||
|
|
||
|
def hdel(self, name: str, field):
|
||
|
res = redis.StrictRedis(host=self.host, port=self.port, db=self.db, password=self.password)
|
||
|
try:
|
||
|
res.hdel(name, field)
|
||
|
except Exception as e:
|
||
|
print('hdel ', name, ' is error.', e)
|
||
|
finally:
|
||
|
res.close()
|
||
|
|
||
|
def zrange(self, name: str, start: int, end: int, withscores: bool):
|
||
|
data = None
|
||
|
res = redis.StrictRedis(host=self.host, port=self.port, db=self.db, password=self.password)
|
||
|
try:
|
||
|
data = res.zrange(name, start=start, end=end, withscores=withscores)
|
||
|
except Exception as e:
|
||
|
print('hdel ', name, ' is error.', e)
|
||
|
finally:
|
||
|
res.close()
|
||
|
return data
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
util = RedisUtil(host='172.16.0.2', port=6379, db=0, password='mehpec-vybgig-Demri6')
|
||
|
members = util.zrange('yinmeng_act_christmas_2023_rank_total', start=0, end=-1, withscores=True)
|
||
|
for member in members:
|
||
|
if member is not None:
|
||
|
print(member[0].decode('utf-8'), ',', str(member[1]))
|
||
|
|