L'obtention de valeurs avec le bon type dans le Redis

Je suis en utilisant le redis dans mon application en python pour stocker des valeurs simples telles que les comptoirs et l'horodatage des listes, mais en essayant d'obtenir un compteur et de le comparer avec un numéro, je suis tombé sur un problème.

Si je fais:

import redis
...
myserver = redis.Redis("localhost")
myserver.set('counter', 5)

et puis essayer d'obtenir cette valeur comme ceci:

if myserver.get('counter') < 10:
     myserver.incr('counter')

puis-je obtenir un type d'erreur dans l'instruction if parce que je suis la comparaison '5' < 10, ce qui signifie je suis stocker une valeur de type entier et d'obtenir une chaîne d'un (qui peut être considéré comme une valeur différente).

Ma question est: est-ce censé fonctionner comme ça? Je veux dire, c'est une très type de base, je comprends, si je dois analyser des objets, mais un int? Semble que je suis en train de faire quelque chose de mal.

Est-il une configuration qui me manque?

Est-il possible de faire redis retourner le bon type et pas toujours une chaîne de caractères?
Je dis cela parce que c'est la même chose pour les listes et les datetimes ou même des valeurs à virgule flottante.

- Ce que cela pourrait être un problème avec le redis-py client que j'utilise et pas redis lui-même?

  • J'ai été déconner avec la src/redis-cli qui vient avec leur distribution. Malheureusement, il ressemble redis magasins entiers comme des chaînes de caractères, et en déduit t-il des types lors incr/decr opérations.
  • vous pouvez utiliser si int(monserveur.get('compteur'))<10.
InformationsquelleAutor jeruki | 2012-10-25