From 2189c9ddcaa3bda8117550e2dc2bc531f793e910 Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 10 Nov 2021 10:47:04 -0700 Subject: [PATCH] Simplify retrieval of service keys from redis Can just use a wildcard in the initial keys query, rather than grabbing all keys and filtering by service prefix. --- lib/farside.ex | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/lib/farside.ex b/lib/farside.ex index 9432406..f87706a 100644 --- a/lib/farside.ex +++ b/lib/farside.ex @@ -2,16 +2,7 @@ defmodule Farside do @service_prefix Application.fetch_env!(:farside, :service_prefix) def get_services_map do - {:ok, redis_keys} = Redix.command(:redix, ["KEYS", "*"]) - - # Extract only service related keys - service_list = - Enum.filter( - redis_keys, - fn key -> - String.starts_with?(key, @service_prefix) - end - ) + {:ok, service_list} = Redix.command(:redix, ["KEYS", "#{@service_prefix}*"]) # Match service name to list of available instances Enum.reduce(service_list, %{}, fn service, acc ->