Class: ValkeyObjects::SortedSet
- Inherits:
-
Object
- Object
- ValkeyObjects::SortedSet
- Includes:
- Enumerable
- Defined in:
- lib/valkey/objects.rb
Overview
Sorted Set wrapper
Instance Attribute Summary collapse
-
#key ⇒ Object
readonly
Returns the value of attribute key.
-
#valkey ⇒ Object
readonly
Returns the value of attribute valkey.
Instance Method Summary collapse
- #add(member, score) ⇒ Object (also: #[]=)
- #clear ⇒ Object
- #decr(k, n) ⇒ Object
- #delete ⇒ Object
- #dn(n, *a) ⇒ Object
- #each(&block) ⇒ Object
- #expire(seconds) ⇒ Object
- #expireat(unix_timestamp) ⇒ Object
- #incr(k, n) ⇒ Object
-
#initialize(key, valkey) ⇒ SortedSet
constructor
A new instance of SortedSet.
-
#knn ⇒ Object
KNN ###.
- #member?(member) ⇒ Boolean (also: #include?)
- #members ⇒ Object
- #persist ⇒ Object
- #range(start_idx, end_idx, with_scores: true) ⇒ Object
- #remove(member) ⇒ Object
- #revrange(start_idx, end_idx, with_scores: true) ⇒ Object
- #score(member) ⇒ Object (also: #[])
- #size ⇒ Object (also: #length)
- #ttl ⇒ Object
- #up(n, *a) ⇒ Object
Constructor Details
#initialize(key, valkey) ⇒ SortedSet
Returns a new instance of SortedSet.
475 476 477 478 |
# File 'lib/valkey/objects.rb', line 475 def initialize(key, valkey) @key = key @valkey = valkey end |
Instance Attribute Details
#key ⇒ Object (readonly)
Returns the value of attribute key.
473 474 475 |
# File 'lib/valkey/objects.rb', line 473 def key @key end |
#valkey ⇒ Object (readonly)
Returns the value of attribute valkey.
473 474 475 |
# File 'lib/valkey/objects.rb', line 473 def valkey @valkey end |
Instance Method Details
#add(member, score) ⇒ Object Also known as: []=
480 481 482 |
# File 'lib/valkey/objects.rb', line 480 def add(member, score) valkey.zadd(key, score, member) end |
#clear ⇒ Object
568 569 570 |
# File 'lib/valkey/objects.rb', line 568 def clear valkey.del(key) end |
#decr(k, n) ⇒ Object
526 527 528 |
# File 'lib/valkey/objects.rb', line 526 def decr k, n add(k, score(k) - n) end |
#delete ⇒ Object
572 573 574 |
# File 'lib/valkey/objects.rb', line 572 def delete clear end |
#dn(n, *a) ⇒ Object
534 535 536 |
# File 'lib/valkey/objects.rb', line 534 def dn n, *a [a].flatten.compact.each { |e| decr(e, n) } end |
#each(&block) ⇒ Object
548 549 550 |
# File 'lib/valkey/objects.rb', line 548 def each(&block) members.each(&block) end |
#expire(seconds) ⇒ Object
552 553 554 |
# File 'lib/valkey/objects.rb', line 552 def expire(seconds) valkey.expire(key, seconds) end |
#expireat(unix_timestamp) ⇒ Object
556 557 558 |
# File 'lib/valkey/objects.rb', line 556 def expireat() valkey.expireat(key, ) end |
#incr(k, n) ⇒ Object
522 523 524 |
# File 'lib/valkey/objects.rb', line 522 def incr k, n add(k, score(k) + n) end |
#knn ⇒ Object
KNN ###
539 540 541 |
# File 'lib/valkey/objects.rb', line 539 def knn KNN.new(members.map { |e| e[0] }) end |
#member?(member) ⇒ Boolean Also known as: include?
497 498 499 |
# File 'lib/valkey/objects.rb', line 497 def member?(member) !valkey.zscore(key, member).nil? end |
#members ⇒ Object
518 519 520 |
# File 'lib/valkey/objects.rb', line 518 def members range(0, -1) end |
#persist ⇒ Object
564 565 566 |
# File 'lib/valkey/objects.rb', line 564 def persist valkey.persist(key) end |
#range(start_idx, end_idx, with_scores: true) ⇒ Object
502 503 504 505 506 507 508 |
# File 'lib/valkey/objects.rb', line 502 def range(start_idx, end_idx, with_scores: true) if with_scores valkey.zrange(key, start_idx, end_idx, with_scores: true) else valkey.zrange(key, start_idx, end_idx) end end |
#remove(member) ⇒ Object
493 494 495 |
# File 'lib/valkey/objects.rb', line 493 def remove(member) valkey.zrem(key, member) end |
#revrange(start_idx, end_idx, with_scores: true) ⇒ Object
510 511 512 513 514 515 516 |
# File 'lib/valkey/objects.rb', line 510 def revrange(start_idx, end_idx, with_scores: true) if with_scores valkey.zrevrange(key, start_idx, end_idx, with_scores: true) else valkey.zrevrange(key, start_idx, end_idx) end end |
#score(member) ⇒ Object Also known as: []
485 486 487 488 489 490 |
# File 'lib/valkey/objects.rb', line 485 def score(member) if !member?(member) add(member, 0) end return valkey.zscore(key, member).to_f end |
#size ⇒ Object Also known as: length
543 544 545 |
# File 'lib/valkey/objects.rb', line 543 def size valkey.zcard(key) end |
#ttl ⇒ Object
560 561 562 |
# File 'lib/valkey/objects.rb', line 560 def ttl valkey.ttl(key) end |
#up(n, *a) ⇒ Object
530 531 532 |
# File 'lib/valkey/objects.rb', line 530 def up n, *a [a].flatten.compact.each { |e| incr(e, n) } end |