1 import redis 2 3 4 class ControlRedis(object): 5 def __init__(self): 6 self.__host = '***.*.**.***' # 地址,设置为私有变量,类外不可修改 7 self.__port = 6379 8 self.__password = '**********' # 密码 9 self.db = 6 # 可以在实例化时修改要操作的数据库 10 try: # 对可能出错的代码包裹一下 11 self.r = redis.Redis(host=self.__host, port=self.__port, password=self.__password, db=self.db) 12 except Exception as e: 13 print('出错了,错误是%s' % e) 14 else: 15 print('链接成功') 16 17 def str_get(self, k): # str方法的获取value 18 res = self.r.get(k) 19 if res: 20 return res.decode() 21 else: 22 return None 23 24 def str_set(self, k, v, time=None): # str方法的保存数据(有有效时间/无有效时间) 25 if time: 26 self.r.setex(k, v, time) 27 else: 28 self.r.set(k, v) 29 30 def str_del(self, k): # str方法的删除数据 31 res = self.str_get(k) 32 if res: 33 self.r.delete(k) 34 else: 35 print('找不到该数据') 36 37 def hash_get(self, *k): # hash方法的获取value,*k保证可以传入多个变量 38 res = self.r.hget(*k) 39 if res: 40 return res.decode() 41 else: 42 return None 43 44 def hash_set(self, *args): # hash方法的存储数据,*args中最后一个数为value,前面的数据都为key 45 self.r.hset(*args) 46 47 def hash_getall(self, k): # hash方法获取所有的key和value 48 dics = self.r.hgetall(k) 49 if dics: 50 new_dic = {} 51 for key, value in dics.items(): # 将获取到的key和value从二进制转码 52 key = key.decode() 53 value = value.decode() 54 new_dic[key] = value 55 return new_dic 56 else: 57 return None 58 59 def hash_del(self, *k): #hash方法的删除数据 60 res = self.hash_get(*k) 61 if res: 62 self.r.hdel(*k) 63 else: 64 print('找不到该数据') 65 def cleax_redis(self): 66 self.r.flushdb() # 清空redis 67 print('清空redis成功') 68 gyx = ControlRedis() 69 # 进行str类型的操作 70 # print(gyx.str_get('gyx_test:nonum')) # 查找不存在的函数 71 # gyx.str_set('gyx_test:num2', '第二条数据') # 存入新数据 72 # gyx.str_set('gyx_test:num1', '第一条数据', 600) # 存入有失效时间的数据 73 # print(gyx.str_get('gyx_test:num2')) # 查找存在的数据 74 # gyx.str_del('gyx_test:nonum') # 删除不存在的数据 75 # gyx.str_del('gyx_test:num1') # 删除存在的数据 76 77 # 进行hash类型的操作 78 # print(gyx.hash_get('gyx_ceshi', 'nothing')) # 查找不存在的数据 79 # gyx.hash_set('gyx_ceshi', 'thing1', '第一个数据') # 存入新数据 80 # print(gyx.hash_get('gyx_test', 'thing1')) # 查找存在的数据 81 # gyx.hash_getall('gyx_ceshi') # 查找所有的key和value 82 # 删除“thing1”这个数据 83 # gyx.hash_set('gyx_ceshi', 'thing2', '第二条数据') 84 # gyx.hash_del('gyx_ceshi', 'thing1') 85 # print(gyx.hash_getall('gyx_ceshi')) 86 87 88