RedisClient.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. '''
  4. self.name为Redis中的一个key
  5. '''
  6. import json
  7. import redis
  8. class RedisClient(object):
  9. """
  10. Reids client
  11. """
  12. def __init__(self, name, host, port):
  13. """
  14. init
  15. :param name:
  16. :param host:
  17. :param port:
  18. :return:
  19. """
  20. self.name = name
  21. self.__conn = redis.Redis(host=host, port=port, db=0)
  22. def get(self):
  23. """
  24. get random result
  25. :return:
  26. """
  27. return self.__conn.srandmember(name=self.name)
  28. def put(self, value):
  29. """
  30. put an item
  31. :param value:
  32. :return:
  33. """
  34. value = json.dump(value, ensure_ascii=False).encode('utf-8') if isinstance(value, (dict, list)) else value
  35. return self.__conn.sadd(self.name, value)
  36. def pop(self):
  37. """
  38. pop an item
  39. :return:
  40. """
  41. value = self.get()
  42. if value:
  43. self.__conn.spop(self.name)
  44. return value
  45. def delete(self, value):
  46. """
  47. delete an item
  48. :param key:
  49. :return:
  50. """
  51. self.__conn.srem(self.name, value)
  52. def getAll(self):
  53. return self.__conn.smembers(self.name)
  54. def get_status(self):
  55. return self.__conn.scard(self.name)
  56. def changeTable(self, name):
  57. self.name = name
  58. if __name__ == '__main__':
  59. redis_con = RedisClient('proxy', 'localhost', 6379)
  60. # redis_con.put('abc')
  61. # redis_con.put('123')
  62. # redis_con.put('123.115.235.221:8800')
  63. # print redis_con.getAll()
  64. # redis_con.delete('abc')
  65. # print redis_con.getAll()
  66. # redis_con.pop()
  67. # print redis_con.getAll()
  68. redis_con.changeTable('raw_proxy')
  69. redis_con.put('132.112.43.221:8888')
  70. # redis_con.changeTable('proxy')
  71. print redis_con.get_status()
  72. print redis_con.getAll()