Class RedisFilterBolt

All Implemented Interfaces:
Serializable, IBolt, IComponent, IRichBolt

public class RedisFilterBolt extends AbstractRedisBolt
Basic bolt for querying from Redis and filters out if key/field doesn't exist. If key/field exists on Redis, this bolt just forwards input tuple to default stream.

Supported data types: STRING, HASH, SET, SORTED_SET, HYPER_LOG_LOG, GEO.

Note: For STRING it checks such key exists on the key space. For HASH and SORTED_SET and GEO, it checks such field exists on that data structure. For SET and HYPER_LOG_LOG, it check such value exists on that data structure. (Note that it still refers key from tuple via RedisFilterMapper#getKeyFromTuple()) In order to apply checking this to SET, you need to input additional key this case.

Note2: If you want to just query about existence of key regardless of actual data type, specify STRING to data type of RedisFilterMapper.

See Also:
  • Constructor Details

    • RedisFilterBolt

      public RedisFilterBolt(JedisPoolConfig config, RedisFilterMapper filterMapper)
      Constructor for single Redis environment (JedisPool).
      Parameters:
      config - configuration for initializing JedisPool
      filterMapper - mapper containing which datatype, query key that Bolt uses
    • RedisFilterBolt

      public RedisFilterBolt(JedisClusterConfig config, RedisFilterMapper filterMapper)
      Constructor for Redis Cluster environment (JedisCluster).
      Parameters:
      config - configuration for initializing JedisCluster
      filterMapper - mapper containing which datatype, query key that Bolt uses
  • Method Details

    • process

      public void process(Tuple input)
      Process a single non-tick tuple of input. Implementation needs to handle ack manually. More details on IBolt.execute(Tuple).
      Specified by:
      process in class BaseTickTupleAwareRichBolt
      Parameters:
      input - The input tuple to be processed.
    • declareOutputFields

      public void declareOutputFields(OutputFieldsDeclarer declarer)
      Declare the output schema for all the streams of this topology.
      Parameters:
      declarer - this is used to declare output stream ids, output fields, and whether or not each output stream is a direct stream