2010-12-07 50 views
1

Comment puis-je préserver l'ordre des valeurs récupérées avec la fonction get_multi() de memcache? Par défaut, la commande retournée est aléatoire. Merci.memcache Python conserver l'ordre dans get_multi()

+0

Rappelez-vous que les requêtes memcache peuvent toucher de nombreux serveurs memcache, donc il n'y a aucun moyen d'obtenir les résultats dans un ordre particulier en général. Toute conservation des commandes sera faite par le client - ne pas conserver la commande, mais la restaurer. –

Répondre

0

que je me souvienne memcache a drapeau GET PRÉSERVER ORDER, essayez d'ajouter ceci pour fonctionner des drapeaux

+0

J'ai trouvé cette fonction dans php mais pas dans les bibliothèques python – ensnare

3

bibliothèque Memcache Python retourne un dictionnaire et des dictionnaires en python ne sont pas ordonnés, de sorte que vous devez obtenir les valeurs du dictionnaire dans la bon ordre manuellement:

result = cache.get_multi(keys) 
values = [result.get(key) for key in keys] 
+0

Il y a une erreur de syntaxe dans la deuxième ligne, le côté droit de l'assignation doit soit commencer par un crochet, soit se terminer par un crochet. – dnet

+0

l'a réparé, merci –