婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用go操作redis的有序集合(zset)

使用go操作redis的有序集合(zset)

熱門標簽:宿遷便宜外呼系統代理商 地圖標注免費定制店 重慶慶云企業400電話到哪申請 鄭州智能語音電銷機器人價格 寧波語音外呼系統公司 仙桃400電話辦理 不封卡外呼系統 上海極信防封電銷卡價格 湛江crm外呼系統排名

我就廢話不多說了,大家還是直接看代碼吧~

package main
import (
 "fmt"
 "github.com/garyburd/redigo/redis"
)
func main() {
 // 連接redis數據庫,指定數據庫的IP和端口
 conn, err := redis.Dial("tcp", "36.99.16.197:6379")
 if err != nil {
 fmt.Println("Connect to redis error", err)
 return
 } else {
 fmt.Println("Connect to redis ok.")
 }
 // 函數退出時關閉連接
 defer conn.Close()
 // 執行一個有序zset插入
 _, err = conn.Do("ZADD", "mykey", "INCR", 1, "robot1")
 if err != nil {
 fmt.Println("redis set failed:", err)
 }
 // 再執行一個有序zset插入
 _, err = conn.Do("ZADD", "mykey", "INCR", 1, "robot2")
 if err != nil {
 fmt.Println("redis set failed:", err)
 }
 // 讀取指定zset
 user_map, err := redis.StringMap(conn.Do("ZRANGE", "mykey", 0, 10, "withscores"))
 if err != nil {
 fmt.Println("redis get failed:", err)
 } else {
 fmt.Printf("Get mykey: %v \n", user_map)
 }
 for user := range user_map {
 fmt.Printf("user name: %v %v\n", user, user_map[user])
 }
}

輸出:

Connect to redis ok.
Get mykey: map[robot1:1 robot2:1]
user name: robot1 1
user name: robot2 1

補充:Redis中zset的golang實現

zset

初衷是在不用Redis的前提下實現排行榜

項目地址https://github.com/liyiheng/zset

Installation

go get -u github.com/liyiheng/zset

Usage

Removed RWLock in the SortedSet.

Just implement it yourself if you need.

s := zset.New()
// add data
s.Set(66, 1001, "test1")
s.Set(77, 1002, "test2")
s.Set(88, 1003, "test3")
s.Set(100, 1004, "liyiheng")
s.Set(99, 1005, "test4")
s.Set(44, 1006, "test5")
// update data
s.Set(44, 1001, "test1")
// get rank by id
rank, score, extra := s.GetRank(1004, false)
// get data by rank
id, score, extra := s.GetDataByRank(0, true)
// get data by id
dat, ok := s.GetData(1001)
// delete data by id
s.Delete(1001)

Benchmark

go test -test.bench=".*"
BenchmarkSortedSet_Add-4   1000000  4121 ns/op
BenchmarkSortedSet_GetRank-4  500000  3592 ns/op
BenchmarkSortedSet_GetDataByRank-4 2000000  667 ns/op
PASS
ok zset 11.365s

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • SpringBoot集成Redisson實現延遲隊列的場景分析
  • springboot+websocket+redis搭建的實現
  • java、spring、springboot中整合Redis的詳細講解
  • 關于Springboot2.x集成lettuce連接redis集群報超時異常Command timed out after 6 second(s)
  • 如何自定義redis工具jar包供其他SpringBoot項目直接使用
  • 使用SpringBoot集成redis的方法
  • springboot連接Redis的教程詳解
  • SpringBoot和Redis實現Token權限認證的實例講解
  • SpringBoot集成Redis實現消息隊列的方法
  • springboot基于Redis發布訂閱集群下WebSocket的解決方案
  • springboot2整合redis使用lettuce連接池的方法(解決lettuce連接池無效問題)
  • php使用redis的有序集合zset實現延遲隊列應用示例
  • SpringBoot使用Redis的zset統計在線用戶信息

標簽:電子產品 遼寧 西雙版納 安康 儋州 海南 青海 物業服務

巨人網絡通訊聲明:本文標題《使用go操作redis的有序集合(zset)》,本文關鍵詞  使用,操作,redis,的,有序,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用go操作redis的有序集合(zset)》相關的同類信息!
  • 本頁收集關于使用go操作redis的有序集合(zset)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 临桂县| 澜沧| 长沙县| 宝兴县| 获嘉县| 库车县| 定结县| 汉阴县| 施秉县| 苏尼特右旗| 开鲁县| 仙居县| 敖汉旗| 九龙县| 黑龙江省| 海宁市| 许昌市| 尚志市| 鱼台县| 本溪市| 镇宁| 峡江县| 五常市| 新兴县| 利川市| 游戏| 淳化县| 抚松县| 昌宁县| 新兴县| 万宁市| 安徽省| 张北县| 峨眉山市| 永福县| 灵武市| 河西区| 安义县| 三穗县| 美姑县| 深泽县|