码迷,mamicode.com
首页 > 其他好文 > 详细

封装redis

时间:2018-05-29 00:07:59      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:decode   exists   for   password   封装   exist   time   删除   %s   

import redis

 

# r = redis.Redis()

class MyRedis():

         def __init__(self,ip,password,port=6379,db=0):

                   #构造函数     类在实例化的时候会执行。

                   try:

                            self.r = redis.Redis(host=ip,password=password,port=port,db=db)

                            # r = redis.ConnectionPool(host=ip,password=password,port=port,db=db)

                   except Exception as e:

                            print(‘redis连接失败,错误信息%s‘%e)

         def str_get(self,k):

                   res = self.r.get(k)

                   if res:

                            return res.decode()    #bytes类型转化为字符串。

         def str_set(self,k,v,time=None):

                   self.r.set(k,v,time)    #  不出异常不需要

         def delete(self,k):

                   tag = self.r.exists(k) #  r.exists 用来判断这个key是否存在

                   if tag:

                            self.r.delete(k)

                            print(‘删除成功‘)

                   else:

                            print(‘这个key不存在‘)

         def hash_get(self,name,k):

                   res = self.r.hget(name,k)

                   if res:

                            return res.decode()

         def hash_set(self,name,k,v):

                   self.r.hset(name,k,v)

         def hash_getall(self,name):

                   data = {}

                   # {b‘12‘: b‘1212‘, b‘3‘: b‘sdad‘, b‘4‘: b‘asdadsa‘}

                   res = self.r.hgetall(name)   #获取的结果是一个字典

                   if res:

                            for k,v in res.items():

                                     k =  k.decode()    #对于返回的结果转化为字符串

                                     v = v.decode()

                                     data[k]=v   #加入字典

                   return data

         def hash_del(self,name,k):     #尝试删除不存在 不报错 ,所以不需要try

                   res = self.r.hdel(name,k)

                   if res:

                            print(‘删除成功‘)

                            return 1     #删除成功会返回1   返回给该函数。

                   else:

                            print(‘删除失败,该key不存在‘)

                            return 0

 

         @property         #属性方法  可以a.clean_redis直接调用

         def clean_redis(self):

                   self.r.flushdb()  #清空redis 使用 flushdb()用来清空库

                   print(‘清空redis成功!‘)

                   return 0

 

 ####################################

my = MyRedis(‘118.24.xxx‘,‘HK139232‘)    #不会报错 try方法没效果,其实有一个  redis.ConnectionPool 的方法可以???找一下

my.str_get(‘sss‘)

封装redis

标签:decode   exists   for   password   封装   exist   time   删除   %s   

原文地址:https://www.cnblogs.com/cslw5566/p/9102621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!