RedisObject.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import redis
  2. from AnsjerPush.config import REDIS_ADDRESS, CONFIG_INFO, CONFIG_US
  3. # 本地调试把注释打开
  4. # REDIS_ADDRESS = '127.0.0.1'
  5. class RedisObject:
  6. def __init__(self, db=0):
  7. self.POOL = redis.ConnectionPool(host=REDIS_ADDRESS, port=6379, db=db)
  8. self.CONN = redis.Redis(connection_pool=self.POOL)
  9. # if CONFIG_INFO != CONFIG_US:
  10. # self.POOL = redis.ConnectionPool(host=REDIS_ADDRESS, port=6379, db=db)
  11. # self.CONN = redis.Redis(connection_pool=self.POOL)
  12. # else:
  13. # self.CONN = redis.StrictRedis(
  14. # host=REDIS_ADDRESS,
  15. # ssl=True,
  16. # ssl_cert_reqs=None,
  17. # )
  18. def set_data(self, key, val, expire=0):
  19. try:
  20. self.CONN.set(key, val)
  21. if expire > 0:
  22. self.CONN.expire(key, expire)
  23. except Exception as e:
  24. return False
  25. else:
  26. return True
  27. def get_data(self, key):
  28. try:
  29. val = self.CONN.get(key)
  30. except Exception as e:
  31. print(repr(e))
  32. return False
  33. else:
  34. if val:
  35. return val.decode('utf-8')
  36. else:
  37. return False
  38. def del_data(self, key):
  39. try:
  40. val = self.CONN.delete(key)
  41. except Exception as e:
  42. print(repr(e))
  43. return False
  44. else:
  45. return True
  46. def get_size(self):
  47. return self.CONN.dbsize()
  48. # 向列表插入数据
  49. def rpush(self, name, val):
  50. self.CONN.rpush(name, val)
  51. # 获取列表长度
  52. def llen(self, name):
  53. return self.CONN.llen(name=name)
  54. # 获取列表所有数据
  55. def lrange(self, name, start, end):
  56. return self.CONN.lrange(name, start, end)
  57. def get_ttl(self, key):
  58. ttl = self.CONN.ttl(key)
  59. if ttl:
  60. return ttl
  61. else:
  62. return 0
  63. def ltrim(self, name, start, end):
  64. """
  65. 对一个列表进行修剪(trim),让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
  66. @param name: 列表名称
  67. @param start: 区间开始下标, 0:第一个元素
  68. @param end: 区间结束下标, -1:最后一个元素
  69. @return : bool
  70. """
  71. return self.CONN.ltrim(name, start, end)
  72. def lindex(self, name, index=-1):
  73. """
  74. 根据下标查找元素
  75. @param name: 列表名称
  76. @param index: 区间结束下标, -1:最后一个元素
  77. @return : bool
  78. """
  79. return self.CONN.lindex(name, index)