2017-08-31 4 views
0

J'essaie d'utiliser la liste avec redis sur Linux avec C++, comment utiliser "rpush", "lpush", "rpop", "lpop" sur C++? J'ai écrit comme ceux-ci:comment utiliser Liste sur Redis développement avec C++ en utilisant hiredis

this->_reply = (redisReply *) redisCommand(this->_context, "LPUSH %s %s", key.c_str(), value.c_str()); 
this->_reply = (redisReply *) redisCommand(this->_context, "RPOP %s", key.c_str()); 

Mais il n'a pas de succès, et le « this -> _ répondre:> str » dit « WRONGTYPE opération contre une clé tenant le mauvais type de valeur »

Comment puis-je utiliser ces méthodes? Merci

+0

Peut-être avez-vous déjà ajouté cette même clé à votre instance redis comme autre chose qu'une liste? – nos

+0

@nos Après avoir utilisé la touche "SUPPR" pour supprimer la clé, exécutez-la à nouveau et ayez une erreur "terminate appelée après avoir lancé une instance de 'std :: logique_error' what(): basic_string :: _ S_construct NULL non valide" what – wikios

+0

@Gerhardh désolé je l'ai oublié et déjà supprimé – wikios

Répondre

0

WRONGTYPE Operation against a key holding the wrong kind of value signifie que ce que la touche enfoncée n'est pas une liste, donc quand vous voulez faire un lpush sur cette touche, il s'en plaint.

Vous pouvez utiliser la commande TYPE key pour tester le type de la clé avec redis-cli en premier.