Skip to content

ushen-pyj/lua-zset

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

key和score都是整数类型, 需要自己为元素提供唯一id, 避免精度问题score也用整数

  1. 加载模块
local zset = require "zset"
  1. 创建有序集合
local zs = zset.create(1000)  -- 默认升序, 最大长度1000
-- local zs = zset.create(1000,1)  -- 传1为降序, 最大长度1000
  1. 插入或更新元素分数
local zs = zset.create(2)
zs:update(1001, 88)  -- 插入key为1001,分数为88
zs:update(1002, 77)
local remove_ele = zs:update(1003, 99) -- 超出长度被删除的key
print(remove_ele) -- {1003}
  1. 获取元素分数
local score = zs:getscore(1001)
print(score)  -- 输出99
  1. 删除元素
zs:delete(1002)
  1. 范围查询
local res = zs:range(0, 9)  -- 获取第1~10名
for i, v in ipairs(res) do
    print(v.key, v.score, v.rank)
end

About

lua-zset

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published