Heim > Artikel > Backend-Entwicklung > Bei Verwendung des Redis-Cache ist der Cache-Schlüsselwert ein Intervallwert (der verarbeitet werden kann), wenn eine Intervallnummer im Intervall übergeben wird. Wie findet man den entsprechenden Cache?
Zum Beispiel:
Ich habe jetzt ein Array
Array (
<code> '10000_20000'=>'上海', '20001_30200'=>'北京', '30201_30300'=>'天津', '30301_40000'=>'深圳'</code>
)
Jetzt möchte ich jeden Wert im Array im Redis-Cache speichern. Der Cache-Schlüsselwert kann nach jeder Verarbeitung der Array-Schlüsselwert sein. I Ich möchte einen Cache-Wert mit einem Schlüsselwert von 38000 im Cache finden. Gibt es eine gute Möglichkeit?
Antwortinhalt:
Ich habe jetzt ein Array
Array (
<code> '10000_20000'=>'上海', '20001_30200'=>'北京', '30201_30300'=>'天津', '30301_40000'=>'深圳'</code>)
Jetzt möchte ich jeden Wert im Array im Redis-Cache speichern. Der Cache-Schlüsselwert kann nach jeder Verarbeitung der Array-Schlüsselwert sein. I Ich möchte einen Cache-Wert mit einem Schlüsselwert von 38000 im Cache finden. Gibt es eine gute Möglichkeit?
Bitte geben Sie mir eine Anleitung!
//Wenn das Array viele Schlüssel, aber einen kleinen Wert hat, verwenden Sie eine geordnete Menge
<code>$redis->zAdd('key', 10000, '上海'); $redis->zAdd('key', 20001, '北京'); $redis->zAdd('key', 30201, '天津'); $redis->zAdd('key', 30301, '深圳'); $redis->zAdd('key', 40001, '非法'); $index = 38000; $value = $redis->zRangeByScore('key', $index, '+inf', ['limit' => [0, 1]]); // 深圳</code>Diese Daten sind unregelmäßig
Meine Idee ist, foreach den richtigen Teil herauszunehmen und die Größe zu vergleichen. Wenn sie größer oder gleich 3800 ist, brechen Sie aus der Schleife aus und geben Sie den aktuellen Schlüsselwert zurück .
Natürlich muss das Format mit dem übereinstimmen, was Sie jetzt haben, von klein bis groß