Απαιτήσεις: Ορισμένα δεδομένα πρέπει να εξαχθούν από την προσωρινή μνήμη Redis μέσω χαρακτήρων μπαλαντέρ για την αντιμετώπιση προβλημάτων. Το NET/C# χρησιμοποιεί τον πελάτη StackExchange.Redis για να χειριστεί την προσωρινή μνήμη Redis και να την εξαγάγει ως αρχείο txt στον τοπικό δίσκο. Η αρχή είναι να φιλτράρετε όλα τα κλειδιά μέσω της εντολής SCAN και, στη συνέχεια, να ρωτάτε την τιμή κάθε κλειδιού.
Η εντολή KEYS στο Redis επιστρέφει όλα τα κλειδιά που ταιριάζουν ταυτόχρονα, όταν υπάρχουν πολλά κλειδιά στο Redis, είναι ένας κρυφός κίνδυνος για την κατανάλωση μνήμης και τον διακομιστή redis και για τις εκδόσεις Redis 2.8 και άνω, μας παρέχει μια καλύτερη εντολή για να διασχίσουμε τα πλήκτρα ΣΑΡΩΣΗ.
Το SCAN επιστρέφει μόνο έναν μικρό αριθμό στοιχείων ανά εκτέλεση, επομένως μπορεί να χρησιμοποιηθεί σε περιβάλλοντα παραγωγής χωρίς προβλήματα που μπορεί να μπλοκάρουν τον διακομιστή όπως οι εντολές KEYS ή SMEMBERS.
Η εντολή SCAN είναι ένας επαναλήπτης που βασίζεται σε δρομέα. Αυτό σημαίνει ότι κάθε φορά που καλείται μια εντολή, πρέπει να χρησιμοποιεί τον κέρσορα που επιστράφηκε από την προηγούμενη κλήση ως όρισμα δρομέα για την επόμενη κλήση, ώστε να συνεχιστεί η προηγούμενη διαδικασία επανάληψης
Όταν η παράμετρος δρομέα (δηλαδή, δρομέας) της εντολής SCAN έχει οριστεί σε 0, ο διακομιστής θα ξεκινήσει μια νέα επανάληψη και όταν ο διακομιστής επιστρέψει έναν κέρσορα με τιμή 0 στον χρήστη, η επανάληψη έχει τελειώσει.
Αναθεώρηση:
Αρχικά, εισάγουμε 100.000 μπάρες στο RedisUser:GUID 格式Δεδομένα όπως φαίνεται στο παρακάτω σχήμα:
Το .NET/C# χρησιμοποιεί το StackExchange.Redis για να ρωτήσει ασαφή τα δεδομένα "Χρήστης:*" και να τα εξάγει στον τοπικό σας δίσκο ως αρχείο txt, ο πηγαίος κώδικας είναι ο εξής:
Οι αποδόσεις είναι οι εξής:
(Τέλος)
|