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.



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

def initialize(key, valkey)
  @key = key
  @valkey = valkey
end

Instance Attribute Details

#keyObject (readonly)

Returns the value of attribute key.



469
470
471
# File 'lib/valkey/objects.rb', line 469

def key
  @key
end

#valkeyObject (readonly)

Returns the value of attribute valkey.



469
470
471
# File 'lib/valkey/objects.rb', line 469

def valkey
  @valkey
end

Instance Method Details

#add(member, score) ⇒ Object Also known as: []=



476
477
478
# File 'lib/valkey/objects.rb', line 476

def add(member, score)
  valkey.zadd(key, score, member)
end

#clearObject



564
565
566
# File 'lib/valkey/objects.rb', line 564

def clear
  valkey.del(key)
end

#decr(k, n) ⇒ Object



522
523
524
# File 'lib/valkey/objects.rb', line 522

def decr k, n
  add(k, score(k) - n)
end

#deleteObject



568
569
570
# File 'lib/valkey/objects.rb', line 568

def delete
  clear
end

#dn(n, *a) ⇒ Object



530
531
532
# File 'lib/valkey/objects.rb', line 530

def dn n, *a
  [a].flatten.compact.each { |e| decr(e, n) }
end

#each(&block) ⇒ Object



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

def each(&block)
  members.each(&block)
end

#expire(seconds) ⇒ Object



548
549
550
# File 'lib/valkey/objects.rb', line 548

def expire(seconds)
  valkey.expire(key, seconds)
end

#expireat(unix_timestamp) ⇒ Object



552
553
554
# File 'lib/valkey/objects.rb', line 552

def expireat(unix_timestamp)
  valkey.expireat(key, unix_timestamp)
end

#incr(k, n) ⇒ Object



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

def incr k, n
  add(k, score(k) + n)
end

#knnObject

KNN ###



535
536
537
# File 'lib/valkey/objects.rb', line 535

def knn
  KNN.new(members.map { |e| e[0] })
end

#member?(member) ⇒ Boolean Also known as: include?

Returns:

  • (Boolean)


493
494
495
# File 'lib/valkey/objects.rb', line 493

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

#membersObject



514
515
516
# File 'lib/valkey/objects.rb', line 514

def members
  range(0, -1)
end

#persistObject



560
561
562
# File 'lib/valkey/objects.rb', line 560

def persist
  valkey.persist(key)
end

#range(start_idx, end_idx, with_scores: true) ⇒ Object



498
499
500
501
502
503
504
# File 'lib/valkey/objects.rb', line 498

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



489
490
491
# File 'lib/valkey/objects.rb', line 489

def remove(member)
  valkey.zrem(key, member)
end

#revrange(start_idx, end_idx, with_scores: true) ⇒ Object



506
507
508
509
510
511
512
# File 'lib/valkey/objects.rb', line 506

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: []



481
482
483
484
485
486
# File 'lib/valkey/objects.rb', line 481

def score(member)
  if !member?(member)
    add(member, 0)
  end
  return valkey.zscore(key, member).to_f
end

#sizeObject Also known as: length



539
540
541
# File 'lib/valkey/objects.rb', line 539

def size
  valkey.zcard(key)
end

#ttlObject



556
557
558
# File 'lib/valkey/objects.rb', line 556

def ttl
  valkey.ttl(key)
end

#up(n, *a) ⇒ Object



526
527
528
# File 'lib/valkey/objects.rb', line 526

def up n, *a
  [a].flatten.compact.each { |e| incr(e, n) }
end