RedisObject.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import redis
  2. from Ansjer.config import SERVER_HOST
  3. # 本地调试把注释打开
  4. # SERVER_HOST = '127.0.0.1'
  5. class RedisObject:
  6. def __init__(self, db=0):
  7. self.POOL = redis.ConnectionPool(host=SERVER_HOST, port=6379, db=db)
  8. self.CONN = redis.Redis(connection_pool=self.POOL)
  9. def set_data(self, key, val, expire=0):
  10. try:
  11. self.CONN.set(key, val)
  12. if expire > 0:
  13. self.CONN.expire(key, expire)
  14. except Exception as e:
  15. return False
  16. else:
  17. return True
  18. def set_expire(self, key, ttl):
  19. self.CONN.expire(key, ttl)
  20. def get_data(self, key):
  21. try:
  22. val = self.CONN.get(key)
  23. except Exception as e:
  24. print(repr(e))
  25. return False
  26. else:
  27. if val:
  28. return val.decode('utf-8')
  29. else:
  30. return False
  31. def del_data(self, key):
  32. try:
  33. val = self.CONN.delete(key)
  34. except Exception as e:
  35. print(repr(e))
  36. return False
  37. else:
  38. return True
  39. def get_size(self):
  40. return self.CONN.dbsize()
  41. # 向列表插入数据
  42. def rpush(self, name, val):
  43. self.CONN.rpush(name, val)
  44. def lpop(self, name):
  45. val = self.CONN.lpop(name)
  46. if val:
  47. return val.decode('utf-8')
  48. else:
  49. return False
  50. # 获取列表长度
  51. def llen(self, name):
  52. return self.CONN.llen(name=name)
  53. # 获取列表所有数据
  54. def lrange(self, name, start, end):
  55. return self.CONN.lrange(name, start, end)
  56. # 删除列表指定数据
  57. def lrem(self, name, num, value):
  58. """
  59. num:列表方向,删除个数(0:所有)
  60. value:删除的值
  61. """
  62. return self.CONN.lrem(name, num, value)
  63. def get_ttl(self, key):
  64. ttl = self.CONN.ttl(key)
  65. if ttl:
  66. return ttl
  67. else:
  68. return 0
  69. def get_keys(self, key):
  70. keys = self.CONN.keys(key)
  71. if keys:
  72. return keys
  73. else:
  74. return False
  75. def set_ex_data(self, key, val, expire=0):
  76. try:
  77. self.CONN.setex(name=key, time=expire, value=val)
  78. except Exception as e:
  79. return False
  80. else:
  81. return True
  82. def set_hash_data(self, key, kwargs):
  83. self.CONN.hmset(key, kwargs)
  84. def get_hash_data(self, key, file):
  85. value = self.CONN.hmget(key, file)[0]
  86. if value:
  87. return value.decode('utf-8')
  88. else:
  89. return False
  90. def get_all_hash_data(self, key):
  91. return self.CONN.hgetall(key)