RedisClient.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. '''
  4. self.name为Redis中的一个key
  5. 2017/4/17 修改pop
  6. '''
  7. import json
  8. import redis
  9. class RedisClient(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 random result
  26. :return:
  27. """
  28. return self.__conn.srandmember(name=self.name).decode('utf-8') #redis return bytes
  29. def put(self, value):
  30. """
  31. put an item
  32. :param value:
  33. :return:
  34. """
  35. value = json.dumps(value) if isinstance(value, (dict, list)) else value
  36. return self.__conn.sadd(self.name, value)
  37. def pop(self):
  38. """
  39. pop an item
  40. :return:
  41. """
  42. return self.__conn.spop(self.name)
  43. def delete(self, value):
  44. """
  45. delete an item
  46. :param key:
  47. :return:
  48. """
  49. self.__conn.srem(self.name, value)
  50. def getAll(self):
  51. return self.__conn.smembers(self.name)
  52. def get_status(self):
  53. return self.__conn.scard(self.name)
  54. def changeTable(self, name):
  55. self.name = name
  56. if __name__ == '__main__':
  57. redis_con = RedisClient('proxy', 'localhost', 6379)
  58. # redis_con.put('abc')
  59. # redis_con.put('123')
  60. # redis_con.put('123.115.235.221:8800')
  61. # redis_con.put(['123', '115', '235.221:8800'])
  62. # print(redis_con.getAll())
  63. # redis_con.delete('abc')
  64. # print(redis_con.getAll())
  65. # redis_con.pop()
  66. # print(redis_con.getAll())
  67. redis_con.changeTable('raw_proxy')
  68. # redis_con.put('132.112.43.221:8888')
  69. # redis_con.changeTable('proxy')
  70. print(redis_con.get_status())
  71. print(redis_con.getAll())