So implementieren Sie ein Online-Abstimmungssystem mit der Go-Sprache und Redis
Übersicht:
Das Online-Abstimmungssystem ist ein häufiges Anwendungsszenario, das bei verschiedenen Gelegenheiten eingesetzt werden kann, z. B. bei Wahlen, Fragebögen, Auswahlen usw. In diesem Artikel wird erläutert, wie Sie mithilfe der Go-Sprache und Redis ein einfaches Online-Abstimmungssystem implementieren. Wir werden die Go-Sprache als Back-End-Entwicklungssprache und Redis als Datenspeicher und Cache verwenden.
package main import ( "fmt" "log" "github.com/go-redis/redis" ) func main() { // 连接到Redis服务器 client := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", DB: 0, }) // 检查连接是否成功 pong, err := client.Ping().Result() if err != nil { log.Fatal(err) } fmt.Println(pong) // 设置初始投票选项及其票数 options := map[string]int{ "Option1": 0, "Option2": 0, "Option3": 0, } // 将选项及其票数保存到Redis中 for option, count := range options { err := client.HSet("votes", option, count).Err() if err != nil { log.Fatal(err) } } // 投票 option := "Option1" err = client.HIncrBy("votes", option, 1).Err() if err != nil { log.Fatal(err) } // 获取每个选项的票数 votes, err := client.HGetAll("votes").Result() if err != nil { log.Fatal(err) } // 打印投票结果 for option, count := range votes { fmt.Printf("%s: %s ", option, count) } }
Im obigen Code erstellen wir zunächst einen Redis-Client und stellen dann eine Verbindung zum Redis-Server her. Wenn die Verbindung erfolgreich ist, legen wir die anfänglichen Abstimmungsoptionen und deren Anzahl an Stimmen fest und speichern sie in der Redis-Hash-Tabelle. Als Nächstes simulieren wir einen Benutzerabstimmungsprozess und addieren 1 zur Anzahl der Stimmen für die Option. Schließlich verwenden wir den Befehl HGetAll, um die Anzahl der Stimmen für jede Option zu ermitteln und die Abstimmungsergebnisse auszudrucken.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie ein Online-Abstimmungssystem mit der Sprache Go und Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!