Je veux rechercher efficacement gamme de sous-réseau IPv6 en utilisant redis.redis store 128 bit nombre
Je pensais stocker les adresses numériques IPv6 dans redis et les rechercher par plage. ce sont 128 bits ints, par exemple:
import ipaddress
int(ipaddress.ip_address(u'113f:a:2:3:4:1::77'))
> 22923991422715307029586104612626104439L
et requête par plage:
ZRANGEBYSCORE numerics <subnet-S-start> <subnet-S-end>
CEPENDANT, Redis triées-ensembles peuvent contenir score jusqu'à 2^53, donc Tous mes gros morceaux sont coupés et je perds de la précision.
Existe-t-il un moyen d'enregistrer de tels nombres en redis sans perte de précision?
Avez-vous une meilleure suggestion? Merci
Vous souhaiterez peut-être convertir ce nombre en un tableau d'octets et enregistrer qu'à la place – Guilherme
Redis peut ne pas être l'outil approprié pour le travail. Postgres, par exemple, a un support robuste et natif pour les types de données IPv4 et IPv6. – tadman
@tadman redis est idéal pour cela, mais comme d'habitude avec redis, un peu de travail est nécessaire. –