RedisObject.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: AnsjerOA
  7. @software: PyCharm
  8. @DATE: 2018/8/8 17:00
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: RedisObject.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. import redis
  15. from AnsjerPush.config import REDIS_ADDRESS
  16. # SERVER_HOST = '192.168.136.45'
  17. '''
  18. db=3 -> 统计在线人数用
  19. '''
  20. class RedisObject:
  21. def __init__(self, db=0):
  22. self.POOL = redis.ConnectionPool(host=REDIS_ADDRESS, port=6379, db=db)
  23. self.CONN = redis.Redis(connection_pool=self.POOL)
  24. def set_data(self, key, val, expire=0):
  25. try:
  26. self.CONN.set(key, val)
  27. if expire > 0:
  28. self.CONN.expire(key, expire)
  29. except Exception as e:
  30. return False
  31. else:
  32. return True
  33. def get_data(self, key):
  34. try:
  35. val = self.CONN.get(key)
  36. except Exception as e:
  37. print(repr(e))
  38. return False
  39. else:
  40. if val:
  41. return val.decode('utf-8')
  42. else:
  43. return False
  44. def del_data(self, key):
  45. try:
  46. val = self.CONN.delete(key)
  47. except Exception as e:
  48. print(repr(e))
  49. return False
  50. else:
  51. return True
  52. def get_size(self):
  53. return self.CONN.dbsize()
  54. # 向列表插入数据
  55. def rpush(self, name, val):
  56. self.CONN.rpush(name, val)
  57. # 获取列表长度
  58. def llen(self, name):
  59. return self.CONN.llen(name=name)
  60. # 获取列表所有数据
  61. def lrange(self, name, start, end):
  62. return self.CONN.lrange(name, start, end)
  63. def get_ttl(self, key):
  64. ttl = self.CONN.ttl(key)
  65. if ttl:
  66. return ttl
  67. else:
  68. return 0