Sha256: cf20addbfba36bef4f8b684bdb81e1900e521f8ded91a60285f1a12866463a4f
Contents?: true
Size: 997 Bytes
Versions: 1
Compression:
Stored size: 997 Bytes
Contents
# frozen_string_literal: true require 'redis' require_relative '../mixins/packer' module Trifle module Stats module Driver class Redis include Mixins::Packer attr_accessor :client, :prefix, :separator def initialize(client = ::Redis.current, prefix: 'trfl') @client = client @prefix = prefix @separator = '::' end def inc(key:, **values) pkey = ([prefix] + key).join(separator) self.class.pack(hash: values).each do |k, c| client.hincrby(pkey, k, c) end end def set(key:, **values) pkey = ([prefix] + key).join(separator) client.hmset(pkey, *self.class.pack(hash: values)) end def get(keys:) keys.map do |key| pkey = ([prefix] + key).join(separator) self.class.unpack( hash: client.hgetall(pkey) ) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
trifle-stats-1.0.0 | lib/trifle/stats/driver/redis.rb |