Heim > Datenbank > Redis > Wo wird Redis verwendet?

Wo wird Redis verwendet?

步履不停
Freigeben: 2019-06-25 11:45:28
Original
2529 Leute haben es durchsucht

Wo wird Redis verwendet?

1. Cache/gemeinsame Sitzung mit hoher Parallelität:

UserInfo getUserInfo (lange ID) {}

Get:

userRedisKey = "user:info:" + id;

value = redis.get(userRedisKey);

if (value != null) {

            userInfo = deserialize(value);

                return userInfo; >

redis.setex(userRedisKey, 3600, serialize(userInfo));

Die Verwendung einer Zeichenfolge zum Speichern serialisierter Daten ist nicht drei -dimensional und intuitiv genug. Es kann in hmset konvertiert und als Hash-Struktur gespeichert werden, was den Zugriff komfortabler macht

2. Einfache verteilte Sperre

setnx kann nur erfolgreich festgelegt werden, wenn es nicht existiert, und der Rest kann nur warten. Single-Thread

3. Counter incr, da es sich um einen Single-Thread handelt, weniger CPU verbraucht als Cas usw. und eine höhere Leistung hat

lange incrVideoCounter ( long id) {

             key = "video:playCount:" + id; >

4. Stack/Warteschlange implementieren

Stack: lpush + lpop

Warteschlange: lpush + rpop

5. Flusskontrolle/Geschwindigkeitsbegrenzung

phoneNum = "12345678999"; key = "shortMsg:limit:" + phoneNum;

isExists = redis.set(key, 1, "EX 60", "NX");

if (isExists != null ||. redis.incr(key) <= 5) {

//Pass

} else {                                                          verwendend verwendend verwendend verwendend verwendend verwendend verwendend         durch durch durch durch     '   ' durch durch off ‐ ‐‐ ‐‐ ‐‐‐‐‐ und } } to pass } >

Verwenden Sie lpush + brpop, um eine Blockierungswarteschlange zu implementieren. Der Produzent fügt Elemente vom linken Ende der ein Liste mit lpush, und mehrere Verbraucher blockieren und erhalten die Endelemente der Warteschlange vom rechten Ende des brpop

7. Jeder Benutzer hat seinen eigenen Artikel, jetzt den Artikel Liste wird in Seiten angezeigt

hmset Article:1 Titel xx Kontext XXXX

lpush user:1:articles srticle:1 Articles:3

Articles = lrange user :1:articles 0 9

für Artikel in {articles}

hgetall {article}

8. Folgen und liken Sie

Gefällt mir: Zincrby User:ranking:2016_03_15 mike 1

Abbrechen: zrem user:ranking:2016_03_15 mike Die 10 Benutzer mit den meisten Likes: zrevrangebyrank user:ranking :2016_03_15 0 9

Benutzerinformationen und Punktestände anzeigen: hgetall user:info:tom / zscore user:ranking:2016_03_15 mike / zrank user:ranking :2016_03_15 mike

9. Bitmaps berechnen die Beziehungen zwischen großen Datensätzen

10. Rangliste

Mike hat ein Video hochgeladen und erhalten 3 Likes zadd user:ranking:2016_03_15 mike 3

Einer anderen Person hat es gefallen Zincrby user:ranking:2016_03_15 mike 1

11. Folgen Sie

Tags hinzufügen zu Benutzer sadd user:1:tags tag1 tag2

Tags hinzufügen Benutzer sadd tag1:uses user:1 Allgemeine Aufmerksamkeit sinter user:1:tags user:2 :tags

sinter/sunion/sdiff

12. Veröffentlichen und abonnieren

Video abonnieren:changes:

Video veröffentlichen:Ändert „Video1,Video2“

für Video in Video1,Video2                                                                                                                                                                                                     > Effizienz

Persistente RDB (Erstellung untergeordneter Prozesse, Binärdatei, schnelle Wiederherstellung). , nicht Echtzeit genug)/AOF (nur anhängen. Textdateien, Echtzeit-Schreibvorgänge, zuerst aop_buffer, dann durch Konfigurieren des Schreibintervalls auf die Festplatte schreiben und bei Erreichen einer bestimmten Größe zusammenführen)

Batch-HMGET und andere Vorgänge müssen in hscan und andere konvertiert werden progressive Traversal-Methoden, sonst ist es leicht zu blockieren

Pufferung: Client-Puffer (Eingabe/Ausgabe), Backlog-Puffer kopieren, Aof-Puffer

Kopieren: vollständiger/inkrementeller Kopierversatz/Backlog-Puffer kopieren ( Schreibbefehle werden gleichzeitig an den Slave-Server gesendet. Außerdem wird eine First-In-First-Out-Warteschlange verwaltet, was bedeutet, dass der Hauptdienst auch die zuletzt weitergeleiteten Befehle/IDs speichert.

sentinal: Um eine hohe Verfügbarkeit zu erreichen, können Sie den Cluster selbst konfigurieren und den Redis-Datencluster durch Heartbeat und andere Mechanismen überwachen. Wenn ein Knoten ausfällt, kann er rechtzeitig erkannt werden automatisch migrierter

Cluster: verteilter Cluster, fehlertolerante Leader-Auswahl usw. Zuordnung physischer Knoten zu 16383 Slots, um Dynamik zu erreichen

Weitere technische Artikel zu Redis finden Sie in der Spalte Redis-Tutorial, um mehr zu erfahren!

Das obige ist der detaillierte Inhalt vonWo wird Redis verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage