Heim >Datenbank >Redis >Wo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteilt

Wo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteilt

青灯夜游
青灯夜游nach vorne
2021-09-18 20:01:303419Durchsuche

Wo kann Redis angewendet werden? In diesem Artikel werden Ihnen 16 gängige Verwendungsszenarien von Redis auf einmal vorgestellt. Ich hoffe, er ist für alle hilfreich!

Wo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteilt

【Verwandte Empfehlung: Redis-Video-Tutorial

1. Cache

String-Typ

Zum Beispiel: Hot-Data-Cache (wie Berichte, Promi-Betrug), Objekt-Cache, Ganzseiten-Cache, was kann Verbessern Sie die Hot-Data-Zugriffsdaten.

Wo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteilt

2. Verteilte Datenfreigabe

String-Typ, da Redis ein verteilter unabhängiger Dienst ist, der von mehreren Anwendungen gemeinsam genutzt werden kann

Zum Beispiel: verteilte Sitzung

<dependency> 
 <groupId>org.springframework.session</groupId> 
 <artifactId>spring-session-data-redis</artifactId> 
</dependency>

3 Verteilte Sperre

Setnx-Methode vom Typ String Wird nur dann erfolgreich hinzugefügt, wenn es nicht vorhanden ist. Es wird true zurückgegeben Abschnitt auf einmal

5. Zähler

int-Typ, Inkr-Methode

Zum Beispiel: die Anzahl der gelesenen Artikel, die Anzahl der Weibo-Likes, eine gewisse Verzögerung einplanen, zuerst in Redis schreiben und dann regelmäßig mit der Datenbank synchronisieren

6. Aktuelles Limit

int-Typ, Incr-Methode

verwendet die IP-Adresse des Besuchers und andere Informationen. Bei jedem Besuch wird die Anzahl erhöht.

String Typ Bitcount (Einführung in die Bitmap-Datenstruktur in 1.6.6)

Zeichen werden in 8-Bit-Binärform gespeichert

public static boolean getLock(String key) {
    Long flag = jedis.setnx(key, "1");
    if (flag == 1) {
        jedis.expire(key, 10);
    }
    return flag == 1;
}

public static void releaseLock(String key) {
    jedis.del(key);
}

Zum Beispiel: Online-Benutzerstatistiken, gespeicherte Benutzerstatistiken

set k1 a
setbit k1 6 1
setbit k1 7 0
get k1 
/* 6 7 代表的a的二进制位的修改
a 对应的ASCII码是97,转换为二进制数据是01100001
b 对应的ASCII码是98,转换为二进制数据是01100010

因为bit非常节省空间(1 MB=8388608 bit),可以用来做大数据量的统计。
*/

Unterstützt bitweise UND-, bitweise ODER- usw. Operationen

setbit onlineusers 01 
setbit onlineusers 11 
setbit onlineusers 20

Benutzer berechnen, die 7 Tage online sind

BITOPANDdestkeykey[key...] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey 。       
BITOPORdestkeykey[key...] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey 。 
BITOPXORdestkeykey[key...] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey 。 
BITOPNOTdestkeykey ,对给定 key 求逻辑非,并将结果保存到 destkey 。

8. Warenkorb

String oder Hash. Alle Hashes, die mit String durchgeführt werden können, können durchgeführt werden

Schlüssel: Benutzer-ID; Feld: Produkt-ID Wert: Produktmenge.

+1:hinkr. -1:hdecr. Löschen: hdel. Alles auswählen: hgetall. Anzahl der Artikel: hlen.

9. Zeitleiste für Benutzernachrichten

Wo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteiltListe, eine doppelt verknüpfte Liste, kann direkt als Zeitleiste verwendet werden. Einfügereihenfolge

    10. Nachrichtenwarteschlange
  • List bietet zwei blockierende Pop-Operationen: blpop/brpop, das Timeout kann eingestellt werden
blpop: blpop key1 timeout entfernt und ruft das erste Element der Liste ab, wenn die Liste keine Elemente blockiert die Liste, bis die Wartezeit abgelaufen ist oder ein Popup-Element gefunden wird.

brpop: brpop key1 timeout entfernt und ruft das letzte Element der Liste ab. Wenn die Liste keine Elemente enthält, wird die Liste blockiert, bis die Wartezeit abgelaufen ist oder ein auswählbares Element gefunden wird.

Der obige Vorgang. Tatsächlich handelt es sich um die Blockierungswarteschlange von Java. Je mehr Dinge Sie lernen. Je niedriger die Lernkosten

Warteschlange: zuerst rein, zuerst geteilt: rpush blpop, linker Kopf und rechter Schwanz, rechts kommt in die Warteschlange, links geht aus der Warteschlange heraus
  • Stapel: zuerst rein, zuletzt raus: rpush brpop
  • 11, Lotterieziehung

kommt mit einem zufälligen Get-Wert

BITOP "AND" "7_days_both_online_users" "day_1_online_users" "day_2_online_users" ...  "day_7_online_users"
    12, like, anmelden, einchecken
Wenn die Weibo-ID oben t1001 ist, ist die Benutzer-ID u3001

Verwenden Sie wie: t1001 bis Behalten Sie alle Benutzer bei, denen dieses Weibo auf t1001 gefällt 001

Likes: Narbe wie:t1001

Ist es nicht viel einfacher als die Datenbank? Wo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteilt

13. Produkt-Tags

    Die alte Regel besteht darin, Tags:i5001 zu verwenden, um alle Tags des Produkts zu verwalten.
  • Tags hinzufügen:i5001 Das Bild ist klar und zart
  • Tags hinzufügen:i5001 Echte Farbe und klare Anzeige
  • Tags hinzufügen:i5001 Der Vorgang ist hervorragend
  • 14. Produktauswahl
spop myset

Angenommen: iPhone11 ist auf dem Markt

// 获取差集
sdiff set1 set2
// 获取交集(intersection )
sinter set1 set2
// 获取并集
sunion set1 set2
Wo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteilt Die für den Wettbewerb ausgewählten Produkte stammen von Apple und iOS, mit Bildschirmen zwischen 6.0 und 6.24. Das Bildschirmmaterial ist LCD-Bildschirm

sadd brand:apple iPhone11

sadd brand:ios iPhone11

sad screensize:6.0-6.24 iPhone11

sad screentype:lcd iPhone 11

15 Folge einander:

  • füge 1 hinzu:folge 2
  • füge 2 hinzu:Fans 1
  • Füge 1 hinzu:Fans 2
Füge 2 hinzu:Folge 1

Die Leute, denen ich folge, folgen ihm auch (Kreuzung nehmen): Wo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteilt

sinter 1:folge 2:fans

Leute, die du vielleicht kennst:

  • 用户1可能认识的人(差集):sdiff 2:follow 1:follow
  • 用户2可能认识的人:sdiff 1:follow 2:follow

16、排行榜

id 为6001 的新闻点击数加1:

zincrby hotNews:20190926 1 n6001

获取今天点击最多的15条:

zrevrange hotNews:20190926 0 15 withscores

Wo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteilt

Redis 用的好,加薪少不了

原文地址:https://juejin.cn/post/6994229128534687781

作者:码猿技术专栏

更多编程相关知识,请访问:编程视频!!

Das obige ist der detaillierte Inhalt vonWo kann Redis eingesetzt werden? 16 gemeinsame Nutzungsszenarien geteilt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:掘金--码猿技术专栏. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen