sql >> Database >  >> NoSQL >> Redis

ioredis Sleutel met bijpassend patroon

dus dit is de voorbeeldcode die u een breed idee geeft. U kunt dus twee dingen gebruiken die de redis biedt. De eerste is de KEYS-functie die niet mag worden gebruikt vanwege de O(N)-complexiteit. In dit voorbeeld wordt het scancommando in een stream gebruikt, d.w.z. één voor één met verschillende cursorposities. Het scant de hele redis, maar retourneert 10 resultaten tegelijk die de redis niet blokkeren zoals de KEYS-functie zou hebben. We zullen alle sleutels naar een sleutelarray pushen, waarna je door alle sleutels kunt lopen en het GET-commando kunt gebruiken om de waarde van elke sleutel te krijgen.

const redis = require('ioredis');
    let stream = redis.scanStream({
        match: "LOGIN::*",
        count: 10
    });
     stream.on("data", async (keys = []) => {
                        let key;
                        for (key of keys) {
                            if (!keysArray.includes(key)) {
                                await keysArray.push(key);
                            }
                        }
                    });
                    stream.on("end", () => {
                        res(keysArray);
                    });


  1. PyMongo-zelfstudie:MongoDB-failover testen in uw Python-app

  2. De hoogste waarde van een kolom krijgen in MongoDB

  3. Is er een blokkerende redis-bibliotheek voor node.js?

  4. Mongodb PHP - Gehele getallen met decimalen