Inhaltsverzeichnis
Einführung
goos: darwin#🎜 🎜#goarch: amd64# 🎜🎜#CPU: Intel(R) Core(TM) i7-9750H CPU bei 2,60 GHz
BenchmarkRedis/go-redis_client_Benchmark
Heim Datenbank Redis Welche Methoden verwendet der Go Redis-Client?

Welche Methoden verwendet der Go Redis-Client?

Jun 03, 2023 am 09:01 AM
redis go

    Einführung

    Die unterste Ebene von go-redis und redigo wird durch Aufrufen der universellen Do-Methode implementiert, aber #🎜 🎜## 🎜🎜#redigo:

      Da die Eingabe ein universeller Typ ist, müssen Sie sich die Parameter und Rückgabewerte jedes Befehls merken, was sehr unfreundlich ist zu verwenden, #🎜🎜 #
    • Der Parametertyp ist ein universeller Typ und der Parametertyp kann während der Kompilierungsphase nicht überprüft werden.
    • Jeder Befehl benötigt Zeit, um die Verwendungsmethode, die Anzahl der Parameter usw. aufzuzeichnen. Die Verwendungskosten sind hoch. Wir müssen uns nur den Befehl merken und die Schnittstellenanwendung direkt überprüfen Spezifische Verwendung. Die Nutzungskosten sind gering Geben Sie
    • ein und die Antwort wird einheitlich über die Ergebnisschnittstelle zurückgegeben, wodurch sichergestellt wird, dass der Rückgabeparametertyp für Benutzer benutzerfreundlicher ist. Jeder Vorgang ist etwa 10 % langsamer als Redigo, aber Redigo muss die Anwendungs-/Schließungsverbindung anzeigen, sodass der Gesamtleistungsunterschied zwischen den beiden eigentlich nicht groß ist
    • Redigo-Bibliothek

    • redigo Es ist der Go-Client Die Bedienung der Redis-Datenbank ist im Grunde die gleiche wie bei der Implementierung von Redigo-Befehlen durch die Do-Methode Da es sich bei dem Parametertyp um einen universellen Typ handelt, kann er während der Kompilierungsphase nicht überprüft werden. Zweitens benötigt jeder Befehl Zeit, um die Verwendungsmethode, die Anzahl der Parameter usw. aufzuzeichnen.
    # 🎜🎜#Demo

    Demonstriert den grundlegenden Verbindungspoolaufbau, Ping, String-Operation, Hash-Operation, Listenoperation, Ablauf und andere Operationen
      BenchmarkRedis/redigo_client_Benchmark-12     31406	     36919 ns/op
      BenchmarkRedis/go-redis_client_Benchmark-12   29977	     38152 ns/op
      BenchmarkRedis/redigo_client_Benchmark-12     27928	     39923 ns/op
      BenchmarkRedis/go-redis_client_Benchmark-12   27127	     46451 ns/op
      Nach dem Login kopieren
    • Einführung und Verwendung der go-redis-Komponente# 🎜🎜#

      go-redis bietet drei Client-Modi, die dem Server-, Cluster-, Sentinel- und Standalone-Modus entsprechen. Die drei Modi sind im Verbindungspool üblich und bieten auch einen flexiblen Hook Mechanismus. , die unterste Ebene ist eigentlich die universelle Do-Methode namens

    • Aber go-redis verfeinert die Funktionen jedes Redis-Befehls, wir brauchen nur Just Merken Sie sich den Befehl und überprüfen Sie die Anwendung direkt auf die spezifische Verwendung. Zweitens vereinheitlicht es den Datentyp entsprechend dem zugrunde liegenden Redis-Typ. Es kann dabei helfen, den Parametertyp während der Kompilierung zu überprüfen Die Antwort ist einheitlich Ergebnis. Die Schnittstellenrückgabe stellt die Korrektheit des Rückgabeparametertyps sicher und ist benutzerfreundlicher , Hash-Operation, Listenoperation, Ablaufdatum und andere Operationen
    • Do(ctx context.Context, cmd string, args ...interface{}) (interface{}, error)
      Nach dem Login kopieren
    • Leistungstest

      package main
      import (
         "fmt"
         "github.com/gomodule/redigo/redis"
      )
      func main() {
         // 新建一个连接池
         var pool *redis.Pool
         pool = &redis.Pool{
            MaxIdle:     10,  //最初的连接数量
            MaxActive:   0,   //连接池最大连接数量,(0表示自动定义),按需分配
            IdleTimeout: 300, //连接关闭时间 300秒 (300秒不使用自动关闭)
            Dial: func() (redis.Conn, error) { //要连接的redis数据库
               return redis.Dial("tcp", "localhost:6379")
            },
         }
         conn := pool.Get() //从连接池,取一个链接
         defer conn.Close()
         // 0. ping正常返回pong, 异常res is nil, err not nil
         res, err := conn.Do("ping")
         fmt.Printf("ping res=%v\n", res)
         if err != nil {
            fmt.Printf("ping err=%v\n", err.Error())
         }
         // string操作
         // set
         res, err = conn.Do("set", "name", "测试001")
         fmt.Printf("set res=%v\n", res)
         if err != nil {
            fmt.Printf("set err=%v\n", err.Error())
         }
         // get
         res, err = redis.String(conn.Do("get", "name"))
         fmt.Printf("get res=%v\n", res)
         if err != nil {
            fmt.Printf("get err=%v\n", err.Error())
         }
         // MSet   MGet
         res, err = conn.Do("MSet", "name", "测试001", "age", 18)
         fmt.Printf("MSet res=%v\n", res)
         if err != nil {
            fmt.Printf("MSet err=%v\n", err.Error())
         }
         r, err := redis.Strings(conn.Do("MGet", "name", "age"))
         fmt.Printf("MGet res=%v\n", r)
         if err != nil {
            fmt.Printf("MGet err=%v\n", err.Error())
         }
         // expire
         res, err = conn.Do("expire", "name", 5)
         fmt.Printf("expire res=%v\n", r)
         if err != nil {
            fmt.Printf("expire err=%v\n", err.Error())
         }
         // list操作
         // lpush lpop
         res, err = conn.Do("lpush", "hobby", "篮球", "足球", "乒乓球")
         fmt.Printf("lpush res=%v\n", r)
         if err != nil {
            fmt.Printf("lpush err=%v\n", err.Error())
         }
         // lpop
         rs, er := conn.Do("lpop", "hobby")
         fmt.Printf("lpop res=%v\n", rs)
         if er != nil {
            fmt.Printf("lpop err=%v\n", er.Error())
         }
         // hash 操作
         // hset
         res, err = conn.Do("HSet", "userinfo", "name", "lqz")
         fmt.Printf("HSet res=%v\n", r)
         if err != nil {
            fmt.Printf("HSet err=%v\n", err.Error())
         }
         // hget
         r4, er4 := conn.Do("HGet", "userinfo", "name")
         fmt.Printf("HGet res=%v\n", r4)
         if er4 != nil {
            fmt.Printf("HGet err=%v\n", er4.Error())
         }
      }
      Nach dem Login kopieren
      Ergebnisausgabe

    goos: darwin#🎜 🎜#goarch: amd64# 🎜🎜#CPU: Intel(R) Core(TM) i7-9750H CPU bei 2,60 GHz

    BenchmarkRedis

    BenchmarkRedis/redigo_client_Benchmark

    BenchmarkRedis/redigo_client_Benchmark-12          26 386 39110 ns/op

    BenchmarkRedis/go-redis_client_Benchmark

    BenchmarkRedis/go-redis_client_Benchmark-12             28186     37794 ns/op

    Das obige ist der detaillierte Inhalt vonWelche Methoden verwendet der Go Redis-Client?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    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

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    AI Hentai Generator

    AI Hentai Generator

    Erstellen Sie kostenlos Ai Hentai.

    Heißer Artikel

    R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Beste grafische Einstellungen
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: Wie man alles in Myrise freischaltet
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    So erstellen Sie den Redis -Clustermodus So erstellen Sie den Redis -Clustermodus Apr 10, 2025 pm 10:15 PM

    Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

    So implementieren Sie die zugrunde liegenden Redis So implementieren Sie die zugrunde liegenden Redis Apr 10, 2025 pm 07:21 PM

    Redis verwendet Hash -Tabellen, um Daten zu speichern und unterstützt Datenstrukturen wie Zeichenfolgen, Listen, Hash -Tabellen, Sammlungen und geordnete Sammlungen. Ernähren sich weiterhin über Daten über Snapshots (RDB) und appendiert Mechanismen nur Schreibmechanismen. Redis verwendet die Master-Slave-Replikation, um die Datenverfügbarkeit zu verbessern. Redis verwendet eine Ereignisschleife mit einer Thread, um Verbindungen und Befehle zu verarbeiten, um die Datenatomizität und Konsistenz zu gewährleisten. Redis legt die Ablaufzeit für den Schlüssel fest und verwendet den faulen Löschmechanismus, um den Ablaufschlüssel zu löschen.

    So sehen Sie alle Schlüssel in Redis So sehen Sie alle Schlüssel in Redis Apr 10, 2025 pm 07:15 PM

    Um alle Schlüssel in Redis anzuzeigen, gibt es drei Möglichkeiten: Verwenden Sie den Befehl keys, um alle Schlüssel zurückzugeben, die dem angegebenen Muster übereinstimmen. Verwenden Sie den Befehl scan, um über die Schlüssel zu iterieren und eine Reihe von Schlüssel zurückzugeben. Verwenden Sie den Befehl Info, um die Gesamtzahl der Schlüssel zu erhalten.

    So sehen Sie die Versionsnummer der Redis So sehen Sie die Versionsnummer der Redis Apr 10, 2025 pm 05:57 PM

    Um die Redis -Versionsnummer anzuzeigen, können Sie die folgenden drei Methoden verwenden: (1) Geben Sie den Info -Befehl ein, (2) Starten Sie den Server mit der Option --version und (3) die Konfigurationsdatei anzeigen.

    Was tun, wenn Redis-Server nicht gefunden werden kann Was tun, wenn Redis-Server nicht gefunden werden kann Apr 10, 2025 pm 06:54 PM

    Schritte zur Lösung des Problems, das Redis-Server nicht finden kann: Überprüfen Sie die Installation, um sicherzustellen, dass Redis korrekt installiert ist. Setzen Sie die Umgebungsvariablen Redis_host und Redis_port; Starten Sie den Redis-Server Redis-Server; Überprüfen Sie, ob der Server Redis-Cli Ping ausführt.

    So verwenden Sie den Befehl Redis So verwenden Sie den Befehl Redis Apr 10, 2025 pm 08:45 PM

    Die Verwendung der REDIS -Anweisung erfordert die folgenden Schritte: Öffnen Sie den Redis -Client. Geben Sie den Befehl ein (Verbschlüsselwert). Bietet die erforderlichen Parameter (variiert von der Anweisung bis zur Anweisung). Drücken Sie die Eingabetaste, um den Befehl auszuführen. Redis gibt eine Antwort zurück, die das Ergebnis der Operation anzeigt (normalerweise in Ordnung oder -err).

    So verwenden Sie Redis Zset So verwenden Sie Redis Zset Apr 10, 2025 pm 07:27 PM

    Redis bestellte Sets (ZSETs) werden verwendet, um bestellte Elemente und Sortieren nach zugehörigen Bewertungen zu speichern. Die Schritte zur Verwendung von ZSET umfassen: 1. Erstellen Sie ein Zset; 2. Fügen Sie ein Mitglied hinzu; 3.. Holen Sie sich eine Mitgliederbewertung; 4. Holen Sie sich eine Rangliste; 5. Holen Sie sich ein Mitglied in der Rangliste; 6. Ein Mitglied löschen; 7. Holen Sie sich die Anzahl der Elemente; 8. Holen Sie sich die Anzahl der Mitglieder im Score -Bereich.

    So lesen Sie den Quellcode von Redis So lesen Sie den Quellcode von Redis Apr 10, 2025 pm 08:27 PM

    Der beste Weg, um Redis -Quellcode zu verstehen, besteht darin, Schritt für Schritt zu gehen: Machen Sie sich mit den Grundlagen von Redis vertraut. Wählen Sie ein bestimmtes Modul oder eine bestimmte Funktion als Ausgangspunkt. Beginnen Sie mit dem Einstiegspunkt des Moduls oder der Funktion und sehen Sie sich die Codezeile nach Zeile an. Zeigen Sie den Code über die Funktionsaufrufkette an. Kennen Sie die von Redis verwendeten Datenstrukturen. Identifizieren Sie den von Redis verwendeten Algorithmus.

    See all articles