如何为 redis 定义日志存储配置文件



我正在研究Logstash并使用Redis作为输入。我是雷迪斯的新手。 早些时候,我在MySQL上使用JDBC实现了配置文件。 以下是代码:

jdbc {jdbc_connection_string => "jdbc:mysql://localhost:3306/sample"
jdbc_user => "root"
jdbc_password => ""
jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-5.1.48.jar"
jdbc_driver_class => " com.mysql.jdbc.Driver"
clean_run => true
use_column_value => true
tracking_column => "time"
tracking_column_type =>"timestamp"
statement => "SELECT time, firstname, lastname, email FROM sample.sample where time > :sql_last_value;"
schedule => " * * * * * *"
}

我想和 redis 一样,经过研究,我发现了这个:

redis {
host => "127.0.0.1"
port => "6379"
type => "redis-input"
data_type => "list"
key => "0"
message_format => "json_event"
}

我正在使用 predis 将数据插入 redis 中,使用

$redisRes = $client->hmget(insert_id, array('firstname', 'lastname', 'email'));

其中insert_id对于每次插入都是唯一的。 现在,我的问题是:
1.由于insert_id在我的情况下是唯一的,我如何在配置文件中定义它。
2.data_type可以是字符串,["列表","通道","pattern_channel"]之一,但我使用的是哈希。
3. 我如何给出条件(就像在 JDBC 中一样,我们有语句和sql_last_value,我们在 Redis 输入中是否有这样的(
我只想让 Redis 输入像 jdbc 输入一样工作

Redis 输入的工作方式与 SQL 不同:您可以通过弹出可用项目或订阅频道来取消列表事件排队。

不能使用 Redis,因为您不知道要提前查询的密钥。如果仍需要数据的唯一键,请在推送到 Redis 时将它们添加到数据中。

最新更新