在项目中将Redis服务封装成服务类。使得代码简洁,开发难度降低。(此处以Python为实现语言,思路大致相同)
import redis
class RedisServer:
# redis port
redis_port = 6379
# redis host
redis_host = 'localhost'
# 连接对象
r = None
# 连接池
pool = None
def __init__(self):
self.r = self.Server()
# 断开连接
def HandleOver(self):
self.pool.disconnect()
self.r.close()
# 返回一个连接对象
def Server(self):
self.pool = redis.ConnectionPool(host=self.redis_host,
port=self.redis_port,
decode_responses=True)
r = redis.Redis(connection_pool=self.pool)
return r
简单方法实例
根据user_id来返回对应的数据
def GetSingleData(self, user_id):
query_res = self.r.hmget(user_id, 'score')
return query_res
更新数据
def UpdateData(self, user_data):
self.FlushData()
# 转换数据类型
user_data['rank'] = user_data['rank'].astype(float)
user_data['score'] = user_data['score'].astype(float)
for i in range(len(user_data)):
self.r.hset(user_data.iloc[i]['user_id'],
mapping={'score': user_data.iloc[i]['score'],
"rank": user_data.iloc[i]['rank']})
清空所有的数据
def FlushData(self):
self.r.flushall()
获取所有数据的信息,此处需要分页处理
def GetAllData(self, page, number):
pass
根据user_id获取某一特定属性
def GetRecData(self, user_id):
query_res = self.r.hmget(user_id, 'rec')
return str(query_res[0])