Heim  >  Artikel  >  Datenbank  >  Was sind die Verwendungszwecke von Redis?

Was sind die Verwendungszwecke von Redis?

藏色散人
藏色散人Original
2019-10-17 14:26:363421Durchsuche

Was sind die Verwendungszwecke von Redis?

Einführung in Redis

Redis ist eine leistungsstarke Schlüsselwertdatenbank.

Redis verfügt über die folgenden drei Funktionen mit anderen Schlüsselwert-Caching-Produkten:

- Redis unterstützt die Datenpersistenz und kann Daten im Speicher auf der Festplatte speichern und beim Neustart von Load erneut verwenden verwenden.

- Redis unterstützt nicht nur einfache Daten vom Typ Schlüsselwert, sondern bietet auch die Speicherung von Datenstrukturen wie Liste, Satz, Zset und Hash.

- Redis unterstützt die Datensicherung, also die Datensicherung im Master-Slave-Modus.

Was sind die Einsatzmöglichkeiten von Redis?

Fünf Einsatzmöglichkeiten

Vollständiger Seiten-Cache

Ganzseitiges Caching. Wenn Sie serverseitig gerenderte Inhalte verwenden, müssen Sie nicht jede Seite für jede einzelne Anfrage neu rendern. Mit einem Cache wie Redis können Sie häufig angeforderte Inhalte zwischenspeichern und so die Latenz für die am häufigsten angeforderten Seiten erheblich reduzieren. Außerdem verfügen die meisten Frameworks über Hooks für das Caching von Redis-Seiten.

// 设置全页面缓存1分钟
SET key "<html>...</html>" EX 60
// 获取全页面
GET key

2. Sequentielle Anordnung

Da die Redis-Set-Datenstruktur im Speicher sehr schnell und effizient erhöht und verringert werden kann, ist die Leistung viel höher als bei SQL-Abfragen. Vergleichen Sie dies mit den sortierten Sätzen von Redis, was bedeutet, dass Sie in Millisekunden das am höchsten bewertete Element in einer Liste abrufen können, und es ist sehr einfach zu implementieren.

// 向排序集合中添加值
ZADD sortedSet 1 "one"
// 从排序集合中获取所有值
ZRANGE sortedSet 0 -1
// 从排序集合中获取所有值与权重
ZRANGE sortedSet 0 -1 WITHSCORES

3. Sitzungsspeicherung

Die häufigste Verwendung von Redis, die ich gesehen habe, ist Sitzungsspeicherung. Im Gegensatz zu anderen Sitzungsspeichern wie Memcache kann Redis Daten beibehalten, sodass alle Daten beim Stoppen des Caches beim Neustart noch vorhanden sind. Auch wenn es sich nicht unbedingt um eine fortlaufende Aufgabe handelt, kann diese Funktion Ihren Benutzern dennoch viel Ärger ersparen. Niemand möchte, dass seine Konversationen zufällig und ohne Grund gelöscht werden.

// 设置一分钟过期的session
SET randomHash "{userId}" EX 60
// 获取用户ID
GET randomHash

4. Warteschlangen

Eine weniger häufige, aber sehr nützliche Sache, die Sie mit Redis machen können, ist das Anlegen von Warteschlangen. Unabhängig davon, ob es sich um eine E-Mail-Warteschlange oder um Daten handelt, die von anderen Anwendungen verwendet werden, können Sie in Redis eine effiziente Warteschlange erstellen. Jeder Entwickler, der mit dem Stack vertraut ist und Projekte pushen und veröffentlichen kann, kann diese Funktion einfach und natürlich nutzen.

// 添加消息  
HSET messages <id> <message>
ZADD due <due_timestamp> <id>
// 接收消息
ZRANGEBYSCORE due -inf <current_timestamp> LIMIT 0 1  
HGET messages <message_id>
// 删除消息
ZREM due <message_id>
HDEL messages <message_id>

5.pub/sub

Die ultimative reale Verwendung von Redis ist Pub/Sub, das ich in diesem Artikel vorstellen werde. Dies ist eine der leistungsstärksten Funktionen von Redis. Die Möglichkeiten sind endlos. Sie können ein Echtzeit-Chat-System erstellen, Benachrichtigungen für Freundschaftsanfragen in sozialen Netzwerken auslösen und vieles mehr. Diese Funktion ist eine der am meisten unterschätzten Funktionen von Redis, aber sie ist äußerst leistungsstark und einfach zu verwenden.

// 向通道中推送消息
PUBLISH channel message
// 从通道中获取消息
SUBSCRIBE channel

Fazit

Ich hoffe, Ihnen haben diese realen Einsatzmöglichkeiten von Redis gefallen. Auch wenn dieser Artikel nur an der Oberfläche dessen kratzt, was Redis für Sie tun kann, hoffe ich, dass Sie Inspiration dafür erhalten, wie Sie Redis optimal nutzen können.

Das obige ist der detaillierte Inhalt vonWas sind die Verwendungszwecke von Redis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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