Wir haben eine Tabelle in unserer Datenbank, die statische IP-Reichweite von Städten und ihre IP-Adresse hat. Es sieht so etwas wie:Wie memcache oder speichere ich ein Schlüsselwertpaar, wenn der Schlüssel in Reichweite ist und nicht ein einzelner Wert?
IP-TO, IP-FROM, CITY
100, 110, A
111, 168, B
...
965, 1000, Z
Ich habe Beispieldaten erwähnt. Die realen Daten sind riesig mit fast 64.000 Zeilen in der Tabelle.
Für jeden Benutzer auf unserer Website stellen wir fest, ihre Stadt von ihrer IP-Adresse, die von SQL-Abfrage auf SQL Express Server ausgeführt wird.
Da die Daten statisch ist, beispielsweise jeder Benutzer mit IP in Bereich von 100 bis 110 Stadt A gehört, sind wir unnötig Datenbank schlagen jedes Mal.
Wir dachten daran, jeden einzigartigen IP-Besuch zu cachen. Zum Beispiel: IP-100 IP-101 bis A ... IP-110 bis A
abgebildet abgebildet auf einem zugeordnetes Dies würde aber 64k Schlüssel in memcache schaffen und ich fühle mich dort kein Punkt der Speicherung mehrerer ist Schlüssel, die denselben Wert haben, wenn wir den Bereich kennen.
Können wir das irgendwie in einer besseren Art und Weise das heißt von mindestens mem Cache-Schlüssel oder einen anderen Ansatz zusammen mit?
Im Beispiel, das ich sehe, gibt es eine Differenz von 10 in jeder IP-Bereich. Hat der Bereich immer einen konstanten Wert? –
Nein. Dies sind nur Beispieldaten. So ist es nicht. Ich würde das für bessere Klarheit ändern. – maverick