0
votes

Comment obtenir toutes les touches REDIS par la plage de préfixe numérique

J'ai besoin d'obtenir toutes les clés par préfixe de la plage de 62-125 et suivie de ':'

iv'e essayé d'exécuter ce qui suit sans succès: p>

res = r.keys ('[62-125]: *') code> p>

a également essayé d'utiliser Scan: p> xxx pré>

est-ce encore possible ? Si oui, comment? p>

Quelques exemples en cas d'inconvénient: p>

clés qui doivent être récupérés: p> xxx pré>

clés qui ne devraient pas Soyez récupéré: P>

0:df:09765
20:gg:6565
38:hh:345
44:bb:3454
61:bb:6568


0 commentaires

3 Réponses :


0
votes

Une solution de travail: xxx

Cela fonctionne mais je n'accepte pas cette réponse.

  1. Il est dégoûtant et me cause auto-déteste
  2. Ce n'est pas efficace du tout

    Je voterai pour ma propre solution si c'était possible. S'il vous plaît suggérer un meilleur.


0 commentaires

0
votes

Je vous suggère d'utiliser Redis Pipeline

Comme ça ... xxx

Vous ne pouvez pas utiliser clés et scan pour obtenir des touches pour plusieurs matchs de match.refer ceci pour plus Information


0 commentaires

1
votes

Les motifs de Redis (pour clés et numérisation ) sont de type GLOB afin d'utiliser Regex sur eux est un non-go.

Vous pouvez utiliser un script Lua côté serveur (avec LUA ayant des capacités de correspondance de motifs plus robustes, bien que non POSIX REGEX) qui effectue une analyse complète et filtre les résultats.

voir https://stackoverflow.com/a/29945372/3160475 pour un exemple.


0 commentaires