Sha256: bc358257e5a4aed12099f6f84b3140b4a7679e3d3046c21268ffd722b0106451

Contents?: true

Size: 1.52 KB

Versions: 6

Compression:

Stored size: 1.52 KB

Contents

# frozen_string_literal: true

module QasDockGem
  class RedisService
    def initialize
      require 'logger'
      require 'redis'
      @logger = Logger.new($stdout)
    end

    def initialize_redis(uri, port = nil)
      port = 6379 if port.nil?
      { host: uri, port: port, connect_timeout: 0.5, read_timeout: 1.0, write_timeout: 1.0 }
    end

    def connect_redis(uri, port = nil)
      redis_params = initialize_redis(uri, port)
      redis = Redis.new(redis_params)
      begin
        redis.ping
        redis
      rescue StandardError => e
        redis = nil
        @logger.error("Params Redis: #{JSON.pretty_generate(JSON.parse(redis_params.to_json))}")
        @logger.error("Exceção retornada do Redis: #{e.inspect} - Mensagem: #{e.message}")
      end

      redis
    end

    def get_key_redis(redis, key)
      @logger.info("Buscando chave #{key} no Redis")
      begin
        redis.get(key)
      rescue StandardError => e
        @logger.error("Exceção retornada do redis ao consultar a chave: #{e}")
        nil
      end
    end

    def set_key_redis(redis, key, value, ttl)
      @logger.info("Cadastrando chave #{key} com valor: #{value} e tempo de duração: #{ttl}")
      begin
        set_redis = redis.set(key, value, ex: ttl)
        @logger.info('Chave cadastrada com sucesso no redis') if set_redis == 'OK'
      rescue StandardError => e
        @logger.error("Exceção retornada do redis ao cadastrar a chave: #{e}")
        nil
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
qas_dock_gem-0.1.41 lib/qas_dock_gem/services/redis_services.rb
qas_dock_gem-0.1.40 lib/qas_dock_gem/services/redis_services.rb
qas_dock_gem-0.1.39 lib/qas_dock_gem/services/redis_services.rb
qas_dock_gem-0.1.38 lib/qas_dock_gem/services/redis_services.rb
qas_dock_gem-0.1.37 lib/qas_dock_gem/services/redis_services.rb
qas_dock_gem-0.1.36 lib/qas_dock_gem/services/redis_services.rb