class Datadog::Tracing::Contrib::Redis::Integration

Description of Redis integration

def self.compatible?

def self.compatible?
  super && (redis_compatible? || redis_client_compatible?)
end

def self.loaded?

def self.loaded?
  redis_loaded? || redis_client_loaded?
end

def self.redis_client_compatible?

def self.redis_client_compatible?
  !!(redis_client_version && redis_client_version >= REDISCLIENT_MINIMUM_VERSION)
end

def self.redis_client_loaded?

def self.redis_client_loaded?
  !defined?(::RedisClient).nil?
end

def self.redis_client_version

def self.redis_client_version
  Gem.loaded_specs['redis-client'] && Gem.loaded_specs['redis-client'].version
end

def self.redis_compatible?

def self.redis_compatible?
  !!(redis_version && redis_version >= MINIMUM_VERSION)
end

def self.redis_loaded?

def self.redis_loaded?
  !defined?(::Redis).nil?
end

def self.redis_version

def self.redis_version
  Gem.loaded_specs['redis'] && Gem.loaded_specs['redis'].version
end

def self.version

If redis-client and redis > 5 are installed, than they will be in sync, and only redis-client will be installed.
For example, if Sidekiq 7 and Redis 4 are installed: both redis and redis-client will be installed.
Because Redis 4 does not depend on redis-client, it's possible for both gems to be installed at the same time.
Since Redis 5, instrumentation happens in a separate gem: redis-client.
Until Redis 4, all instrumentation happened in one gem: redis.
def self.version
  redis_version || redis_client_version
end

def new_configuration

def new_configuration
  Configuration::Settings.new
end

def patcher

def patcher
  Patcher
end

def resolver

def resolver
  @resolver ||= Configuration::Resolver.new
end