RedisClient.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. '''
  4. self.name为Redis中的一个key
  5. '''
  6. import random
  7. import json
  8. import redis
  9. class ReidsClient(object):
  10. """
  11. Reids client
  12. """
  13. def __init__(self, name, host, port):
  14. """
  15. init
  16. :param name:
  17. :param host:
  18. :param port:
  19. :return:
  20. """
  21. self.name = name
  22. self.__conn = redis.Redis(host=host, port=port, db=0)
  23. def get(self):
  24. """
  25. get an item
  26. :return:
  27. """
  28. values = self.__conn.smembers(name=self.name)
  29. return random.choice(list(values)) if values else None
  30. def put(self, value):
  31. """
  32. put an item
  33. :param value:
  34. :return:
  35. """
  36. value = json.dump(value, ensure_ascii=False).encode('utf-8') if isinstance(value, (dict, list)) else value
  37. return self.__conn.sadd(self.name, value)
  38. def pop(self):
  39. """
  40. pop an item
  41. :return:
  42. """
  43. value = self.get()
  44. if value:
  45. self.__conn.spop(self.name, value)
  46. return value
  47. def delete(self, value):
  48. """
  49. delete an item
  50. :param key:
  51. :return:
  52. """
  53. self.__conn.srem(self.name, value)
  54. def getAll(self):
  55. return self.__conn.smembers(self.name)