Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/s00d/zset
queue with a weight in the memory
https://github.com/s00d/zset
Last synced: about 1 month ago
JSON representation
queue with a weight in the memory
- Host: GitHub
- URL: https://github.com/s00d/zset
- Owner: s00d
- Created: 2018-07-12T18:29:02.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-03T15:16:11.000Z (about 2 years ago)
- Last Synced: 2024-11-14T19:13:40.636Z (about 2 months ago)
- Language: JavaScript
- Size: 550 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# ZSet - node queue with a weight in the memory
[![Build Status](https://travis-ci.org/s00d/zset.svg?branch=master)](https://travis-ci.org/s00d/zset)
[![npm version](https://badge.fury.io/js/zset-node.svg)](https://badge.fury.io/js/zset-node)## methods
create:
``` let zset = new ZSet({t1: {val: {val: 1}}}) ```add new item :
``` zset.set('t2', {val: {val: 10}}) ```multiple add new item:
``` zset.add({t3: {val: {val: 3}}}) ```increment weight item:
``` zset.incr('t2', weight = 1) ```search item:
``` zset.search('val.val', callback)' ```
callback example - (count) => count > 0
val.val - pathfirst item:
``` zset.first() ```last item:
``` zset.first(true) ```first and pop item:
``` zset.firstPop() ```del item:
``` zset.del('t2') ```get by key item:
``` zset.byKey('t1') ```restart weight
``` zset.restart(default = 1) ```clear zset
``` zset.clear() ```### Links
only object valuessetLink
``` zset.setLink('t10.val', 10) ```getLink
``` zset.setLink(10) ```delLink
``` zset.delLink(10) ```Install:
``` npm i zset-node --save ```Example use:
```
let ZSet = require('zset-node');
let zset = new ZSet({t1: {val: {val: 1}}});
zset.set('t2', {val: {val: 10}})
zset.incr('t2')
console.log(zset.first());
console.log(zset.search('val.val', (count) => count > 5));
zset.incr('t1', 5)
zset.incr('t2', -1)
console.log(zset.first());
zset.restart()
zset.byKey('t1')
zset.clear()
```benchmark:
```
1,777,719 op/s » full
10,857,283 op/s » set
184,439,075 op/s » incr
16,156,104 op/s » set2
15,822,752 op/s » get
1,351,739 op/s » search
14,427,746 op/s » first
13,898,607 op/s » last
217,104,550 op/s » byKey
5,367,071 op/s » first and pop
592,784 op/s » set_linkSuites: 1
Benches: 6
Elapsed: 5,085.41 ms
```