RedisObject.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. if CONFIG_INFO == CONFIG_US:
  8. password = '012bzaKUhleHc2645465'
  9. pool = redis.ConnectionPool()
  10. self.CONN = redis.Redis(host=REDIS_ADDRESS, password=password, port=6379, db=db, connection_pool=pool)
  11. else:
  12. pool = redis.ConnectionPool(host=REDIS_ADDRESS, port=6379, db=db)
  13. self.CONN = redis.Redis(connection_pool=pool)
  14. def set_data(self, key, val, expire=0):
  15. self.CONN.set(key, val)
  16. if expire > 0:
  17. self.CONN.expire(key, expire)
  18. def get_data(self, key):
  19. val = self.CONN.get(key)
  20. if val:
  21. return val.decode('utf-8')
  22. def del_data(self, key):
  23. try:
  24. val = self.CONN.delete(key)
  25. except Exception as e:
  26. print(repr(e))
  27. return False
  28. else:
  29. return True
  30. def get_size(self):
  31. return self.CONN.dbsize()
  32. # 向列表插入数据
  33. def rpush(self, name, val):
  34. self.CONN.rpush(name, val)
  35. # 获取列表长度
  36. def llen(self, name):
  37. return self.CONN.llen(name=name)
  38. # 获取列表所有数据
  39. def lrange(self, name, start, end):
  40. return self.CONN.lrange(name, start, end)
  41. def get_ttl(self, key):
  42. ttl = self.CONN.ttl(key)
  43. if ttl:
  44. return ttl
  45. else:
  46. return 0
  47. def ltrim(self, name, start, end):
  48. """
  49. 对一个列表进行修剪(trim),让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
  50. @param name: 列表名称
  51. @param start: 区间开始下标, 0:第一个元素
  52. @param end: 区间结束下标, -1:最后一个元素
  53. @return : bool
  54. """
  55. return self.CONN.ltrim(name, start, end)
  56. def lindex(self, name, index=-1):
  57. """
  58. 根据下标查找元素
  59. @param name: 列表名称
  60. @param index: 区间结束下标, -1:最后一个元素
  61. @return : bool
  62. """
  63. return self.CONN.lindex(name, index)
  64. def close(self):
  65. """
  66. 关闭连接
  67. """
  68. return self.CONN.close()