Class: ValkeyObjects::SortedSet

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/valkey/objects.rb

Overview

Sorted Set wrapper

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#keyObject (readonly)

Returns the value of attribute key.



473
474
475
# File 'lib/valkey/objects.rb', line 473

def key
  @key
end

#valkeyObject (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

#clearObject



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

#deleteObject



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(unix_timestamp)
  valkey.expireat(key, unix_timestamp)
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

#knnObject

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?

Returns:

  • (Boolean)


497
498
499
# File 'lib/valkey/objects.rb', line 497

def member?(member)
  !valkey.zscore(key, member).nil?
end

#membersObject



518
519
520
# File 'lib/valkey/objects.rb', line 518

def members
  range(0, -1)
end

#persistObject



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

#sizeObject Also known as: length



543
544
545
# File 'lib/valkey/objects.rb', line 543

def size
  valkey.zcard(key)
end

#ttlObject



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