RedisObject.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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 Ansjer.config import SERVER_HOST
  16. from Ansjer.config import SERVER_TYPE
  17. # SERVER_HOST = '192.168.136.45'
  18. '''
  19. db=3 -> 统计在线人数用
  20. '''
  21. class RedisObject:
  22. def __init__(self, db=0,SERVER_HOST = SERVER_HOST):
  23. # if db == 3:
  24. # if SERVER_TYPE != 'Ansjer.formal_settings':
  25. # db = 4
  26. self.POOL = redis.ConnectionPool(host=SERVER_HOST, port=6379, db=db)
  27. self.CONN = redis.Redis(connection_pool=self.POOL)
  28. def set_data(self, key, val, expire=0):
  29. try:
  30. self.CONN.set(key, val)
  31. if expire > 0:
  32. self.CONN.expire(key, expire)
  33. except Exception as e:
  34. return False
  35. else:
  36. return True
  37. def get_data(self, key):
  38. try:
  39. val = self.CONN.get(key)
  40. except Exception as e:
  41. print(repr(e))
  42. return False
  43. else:
  44. if val:
  45. return val.decode('utf-8')
  46. else:
  47. return False
  48. def del_data(self, key):
  49. try:
  50. val = self.CONN.delete(key)
  51. except Exception as e:
  52. print(repr(e))
  53. return False
  54. else:
  55. return True
  56. def get_size(self):
  57. return self.CONN.dbsize()
  58. # 向列表插入数据
  59. def rpush(self, name, val):
  60. self.CONN.rpush(name, val)
  61. def lpop(self, name):
  62. val = self.CONN.lpop(name)
  63. if val:
  64. return val.decode('utf-8')
  65. else:
  66. return False
  67. # 获取列表长度
  68. def llen(self, name):
  69. return self.CONN.llen(name=name)
  70. # 获取列表所有数据
  71. def lrange(self, name, start, end):
  72. return self.CONN.lrange(name, start, end)
  73. def get_ttl(self, key):
  74. ttl = self.CONN.ttl(key)
  75. if ttl:
  76. return ttl
  77. else:
  78. return 0
  79. def get_keys(self, key):
  80. keys = self.CONN.keys(key)
  81. if keys:
  82. return keys
  83. else:
  84. return False
  85. def set_ex_data(self, key, val, expire=0):
  86. try:
  87. self.CONN.setex(name=key, time=expire, value=val)
  88. except Exception as e:
  89. return False
  90. else:
  91. return True