class Prolly::Ps::Storage::Redis
Public Class Methods
new(data)
click to toggle source
# File lib/prolly/ps/storage/redis.rb, line 11 def initialize(data) @redis = ::Redis.new(host: "localhost", port: "6379") reset import(data) unless data.nil? end
Public Instance Methods
add(datum)
click to toggle source
# File lib/prolly/ps/storage/redis.rb, line 25 def add(datum) datum.each do |rv, val| @redis.sadd "pspace:rand_vars", rv @redis.sadd "pspace:uniq_vals:#{rv}", val @redis.PFADD "pspace:count:#{rv}", datum.object_id.to_i @redis.PFADD "pspace:count:#{rv}=#{val}", datum.object_id.to_i end end
count(rvs, options = {})
click to toggle source
# File lib/prolly/ps/storage/redis.rb, line 36 def count(rvs, options = {}) if rvs.kind_of?(Array) @redis.pfcount *rvs.map { |rv| "pspace:count:#{rv}" } elsif rvs.kind_of?(Hash) @redis.pfcount *rvs.map { |rv, val| "pspace:count:#{rv}=#{val}" } end end
import(data)
click to toggle source
# File lib/prolly/ps/storage/redis.rb, line 21 def import(data) data.each { |datum| add(datum) } end
rand_vars()
click to toggle source
# File lib/prolly/ps/storage/redis.rb, line 44 def rand_vars @redis.smembers "pspace:rand_vars" end
reset()
click to toggle source
# File lib/prolly/ps/storage/redis.rb, line 17 def reset @redis.keys("pspace:*").each { |k| @redis.del k } end
uniq_vals(rv)
click to toggle source
# File lib/prolly/ps/storage/redis.rb, line 48 def uniq_vals(rv) @redis.smembers "pspace:uniq_vals:#{rv}" end