【问题标题】:How to store Redis hash key using Trident如何使用 Trident 存储 Redis 哈希键
【发布时间】:2014-07-21 20:01:25
【问题描述】:

我正在做一个实时数据项目,目前正在使用https://github.com/kstyrc/trident-redis 的 trident-redis 库来存储带有计数的键集。我想存储一些更高级的细分,包括每个键的纬度和经度值。在命令行上使用 Redis,我可以使用:

HSET 123 lat "40"
HSET 123 lon "-37"

得到

1) "lat"
2) "40"
3) "lon"
4) "-37"

HGETALL 123

如何使用 trident-redis 实现同样的效果? 我的拓扑目前如下所示:

public class TridentEventTopology {

    public static final StormTopology buildTopology(LocalDRPC drpc, StateFactory state) throws IOException {

        final int batchSize = 500;
        final BatchSpout spout = new BatchSpout(batchSize);

        final TridentTopology topology = new TridentTopology();
        TridentState batchedCounts = topology.newStream("spout", spout)
                                               .groupBy(new Fields("id"))
                                               .persistentAggregate(state, new Count(), new Fields("count"));

        topology.newDRPCStream("stream", drpc)
                .groupBy(new Fields("args"))
                .stateQuery(batchedCounts, new Fields("args"), new MapGet(), new Fields("count"))
                .each(new Fields("count"), new FilterNull())
                .aggregate(new Fields("count"), new Sum(), new Fields("sum"));

        return topology.build();
    }

    public static final void executeTopology() throws IOException {

        final StateFactory redis = RedisState.nonTransactional(new InetSocketAddress("localhost", 6379));
        final Config conf = new Config();
        final LocalDRPC drpc = new LocalDRPC();
        final LocalCluster cluster = new LocalCluster();

        cluster.submitTopology("test", conf, buildTopology(drpc, redis));
    }
}

【问题讨论】:

    标签: hash redis apache-storm trident


    【解决方案1】:

    我也遇到过同样的情况。我认为您可以修改 RedisState 的 multiput 和 multiget 功能,您可以在其中 hget 或 hput 所需的键和字段。实际上它已经为一个固定的哈希键实现了。所以您需要做的就是从 multiget 或 multiput 关键参数中提取字段。

    【讨论】:

      猜你喜欢
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 2021-12-13
      • 1970-01-01
      • 2012-05-08
      相关资源
      最近更新 更多