Redis中zset的golang实现

来源:互联网 发布:淘宝里要验证码充流量 编辑:程序博客网 时间:2024/05/28 06:08

Go Report Card

zset

初衷是在不用Redis的前提下实现排行榜
项目地址https://github.com/XanthusL/zset

Installation

go get -u github.com/XanthusL/zset

Usage

Removed RWLock in the SortedSet.
Just implement it yourself if you need.

s := zset.New()// add datas.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 datas.Set(44, 1001, "test1")// get rank by idrank, score, extra := s.GetRank(1004, false)// get data by rankid, score, extra := s.GetDataByRank(0, true)// get data by iddat, ok := s.GetData(1001)// delete data by ids.Delete(1001)

Benchmark

go test -test.bench=".*"BenchmarkSortedSet_Add-4                 1000000              4121 ns/opBenchmarkSortedSet_GetRank-4              500000              3592 ns/opBenchmarkSortedSet_GetDataByRank-4       2000000               667 ns/opPASSok      zset    11.365s