2017-02-04 4 views
2

Ich benutze Redis und Rubin. Es gibt Datensätze:Redis - Schlüssel, Ausdruck

"phones:initial:#{id}" 

redis.hset "phones:initial:1", "query", query 
redis.hset "phones:initial:2", "query", query 
redis.hset "phones:initial:3", "query", query 
redis.hset "phones:initial:4", "query", query 
... 

ist es möglich, die Schlüssel zu erhalten, in denen ID entspricht einem Ausdruck?

"phones:initial: and id % m = n 

Antwort

1

Nein, es gibt keine integrierte Methode, um das zu tun. Sie müssen den Befehl SCAN verwenden, um alle Schlüssel zu durchlaufen und diejenigen auszuwählen, die dem angegebenen Muster entsprechen.

Wenn Sie jedoch immer die gleichen m für den Ausdruck verwenden, können Sie im Voraus berechnen n für jeden id und n als Teil des Schlüssels machen. Auf diese Weise können Sie die Musterübereinstimmung von Redis verwenden, um diese spezifischen Schlüssel zu erhalten.

Angenommen, m == 2 Sie die folgenden neuen Schlüssel haben: phones:initial:1:1, phones:initial:0:2, phones:initial:1:3, phones:initial:0:4. Verwenden Sie den folgenden Befehl, um Schlüssel zu erhalten, die phones:initial: and id % 2 == 0 entsprechen: SCAN 0 MATCH phones:initial:0:*

Verwandte Themen