Package org.apache.storm.redis.bolt
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:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.storm.redis.bolt.AbstractRedisBolt
collector
-
-
Constructor Summary
Constructors Constructor Description RedisFilterBolt(JedisClusterConfig config, RedisFilterMapper filterMapper)
Constructor for Redis Cluster environment (JedisCluster).RedisFilterBolt(JedisPoolConfig config, RedisFilterMapper filterMapper)
Constructor for single Redis environment (JedisPool).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
declareOutputFields(OutputFieldsDeclarer declarer)
Declare the output schema for all the streams of this topology.void
process(Tuple input)
Process a single non-tick tuple of input.-
Methods inherited from class org.apache.storm.redis.bolt.AbstractRedisBolt
cleanup, getInstance, prepare
-
Methods inherited from class org.apache.storm.topology.base.BaseTickTupleAwareRichBolt
execute, onTickTuple
-
Methods inherited from class org.apache.storm.topology.base.BaseComponent
getComponentConfiguration
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.storm.topology.IComponent
getComponentConfiguration
-
-
-
-
Constructor Detail
-
RedisFilterBolt
public RedisFilterBolt(JedisPoolConfig config, RedisFilterMapper filterMapper)
Constructor for single Redis environment (JedisPool).- Parameters:
config
- configuration for initializing JedisPoolfilterMapper
- 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 JedisClusterfilterMapper
- mapper containing which datatype, query key that Bolt uses
-
-
Method Detail
-
process
public void process(Tuple input)
Process a single non-tick tuple of input. Implementation needs to handle ack manually. More details onIBolt.execute(Tuple)
.- Specified by:
process
in classBaseTickTupleAwareRichBolt
- 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
-
-