Exemple #1
0
 def RPUSH(self):
     key = self.arguments[0]
     value = self.arguments[1]
     array = getattr(self.datastore, key, list())
     array.append(value)
     setattr(self.datastore, key, array)
     return (0, serialize_integer('{}'.format(len(array))))
Exemple #2
0
 def SADD(self):
     key = self.arguments[0]
     member = self.arguments[1]
     array = getattr(self.datastore, key, set())
     array.add(member)
     setattr(self.datastore, key, array)
     return (0, serialize_integer('1'))
Exemple #3
0
 def HSET(self):
     key = self.arguments[0]
     k = self.arguments[1]
     value = self.arguments[2]
     data = getattr(self.datastore, key, dict())
     data.update(k=value)
     setattr(self.datastore, key, data)
     return (0, serialize_integer('1'))
Exemple #4
0
 def DEL(self, key=None):
     if key is None:
         for index, key in enumerate(self.arguments):
             try:
                 delattr(self.datastore, key)
             except:
                 pass
         return (0, serialize_integer('{}'.format(index + 1)))
     else:
         delattr(self.datastore, key)
Exemple #5
0
 def INCR(self):
     key = self.arguments[0]
     value, expire = getattr(self.datastore, key, (0, None))
     try:
         value = int(value) + 1
     except:
         return (
             0,
             serialize_error('ERR value is not an integer or out of range'))
     setattr(self.datastore, key, (value, expire))
     return (0, serialize_integer('{}'.format(value)))
Exemple #6
0
    def ZADD(self):
        def byScore(item):
            return item[0]

        key = self.arguments[0]
        score = self.arguments[1]
        member = self.arguments[2]
        array = getattr(self.datastore, key, list())
        if [value for value in array if value[1] == member]:
            array.remove(value)
        array.append((score, member))
        array = sorted(array, key=byScore)
        setattr(self.datastore, key, array)
        return (0, serialize_integer('1'))
Exemple #7
0
 def ZRANK(self):
     key = self.arguments[0]
     member = self.arguments[1]
     array = getattr(self.datastore, key, list())
     if not [
             position
             for position, value in enumerate(array) if value[1] == member
     ]:
         return (0, serialize_bulk_string(None))
     else:
         return (0,
                 serialize_integer('{}'.format([
                     position for position, value in enumerate(array)
                     if value[1] == member
                 ][0])))
Exemple #8
0
 def ZCARD(self):
     key = self.arguments[0]
     array = getattr(self.datastore, key, list())
     return (0, serialize_integer('{}'.format(len(array))))
Exemple #9
0
 def DBSIZE(self):
     return (0, serialize_integer('{}'.format(len(vars(self.datastore)))))