ソースを参照

Resdie客户端

bernieyangmh 9 年 前
コミット
35b6714923
1 ファイル変更67 行追加0 行削除
  1. 67 0
      DB/RedisClient.py

+ 67 - 0
DB/RedisClient.py

@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+# !/usr/bin/env python
+
+'''
+self.name为Redis中的一个key
+'''
+
+import random
+import json
+import redis
+
+class ReidsClient(object):
+    """
+    Reids client
+    """
+
+    def __init__(self, name, host, port):
+        """
+        init
+        :param name:
+        :param host:
+        :param port:
+        :return:
+        """
+        self.name = name
+        self.__conn = redis.Redis(host=host, port=port, db=0)
+
+    def get(self):
+        """
+        get an item
+        :return:
+        """
+        values = self.__conn.smembers(name=self.name)
+
+        return random.choice(list(values)) if values else None
+
+    def put(self, value):
+        """
+        put an  item
+        :param value:
+        :return:
+        """
+        value = json.dump(value, ensure_ascii=False).encode('utf-8') if isinstance(value, (dict, list)) else value
+        return self.__conn.sadd(self.name, value)
+
+    def pop(self):
+        """
+        pop an item
+        :return:
+        """
+        value = self.get()
+        if value:
+            self.__conn.spop(self.name, value)
+        return value
+
+    def delete(self, value):
+        """
+        delete an item
+        :param key:
+        :return:
+        """
+        self.__conn.srem(self.name, value)
+
+    def getAll(self):
+        return self.__conn.smembers(self.name)
+
+