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