Установите и получите сервер стека Redis из Apache NiFi

На самом деле я могу нормально работать с Redis в Apache Nifi. Но я не могу найти никаких ссылок или документации по работе с Redis Stack и RedisJSON .

Я пытался использовать текущее решение, которое работало с Redis, для использования с Redis Stack, но оно не работает.

Есть ли у кого-нибудь опыт в этом или есть какие-либо предложения? пожалуйста, скажите мне в комментарии.

Я очень ценю любую помощь, которую вы можете оказать.

1 ответ

Вы можете попробовать этот подход с помощью языка Groovy в Apache Nifi:

  1. СкачатьJedisJAR-файл.

    ПРИМЕЧАНИЕ. Это обязательная зависимость, которую необходимо добавить в путь к классу Groovy Script.

  2. Загрузите загруженный JAR-файл в каталог вашего работающего экземпляра Nifi.

    ПРИМЕЧАНИЕ. Если вы используете Nifi в Docker, загрузите файл JAR на смонтированный том, к которому у вас будет доступ из вашего экземпляра Nifi.

  3. Добавьте процессор в свой Nifi Flow. Выберите Groovy вScript EngineСвойство Затем заполнитеModule DirectoryСвойство с адресом каталога файлов JAR на вашем экземпляре Nifi.

  4. Чтобы подключиться к RedisStack , выберитеScript BodyНедвижимость вExecuteScriptпроцессор и запишите желаемый сценарий. Например:

      // Import the necessary Jedis classes
import redis.clients.jedis.Jedis
import redis.clients.jedis.JedisPool
import redis.clients.jedis.JedisPoolConfig

// Set up a connection to RedisStack using Jedis
// Replace [REDIS_IP_ADDRESS] and [REDIS_PORT] with your actual running Redis IP address and port number.
def redisHost = "[REDIS_IP_ADDRESS]"
def redisPort = [REDIS_PORT]
def jedis = new Jedis(redisHost, redisPort)

// Connect to the RedisJSON module using the Jedis MODULE LOAD command
//This loads the RedisJSON module into RedisStack, allowing you to use RedisJSON commands
jedis.sendCommand("MODULE", "LOAD", "redisjson")

//Use RedisJSON commands with Jedis to interact with RedisJSON
// Set a JSON object
jedis.sendCommand("JSON.SET", "myjson", ".", '{"name":"John","age":30}')

// Get a JSON object
def result = jedis.sendCommand("JSON.GET", "myjson")
println(result)

// Query a JSON path
def query = ".name"
def value = jedis.sendCommand("JSON.GET", "myjson", query)
println(value)

//Do not forget to close your Jedis connection when you done
jedis.close()

Таким образом вы можете подключиться к RedisStack и использовать команды RedisJSON в Groovy, используя библиотеку Jedis, и все это применимо в Apache Nifi.

Я надеюсь, что это поможет вам.

Другие вопросы по тегам