Package org.apache.storm.redis.bolt
Class RedisFilterBolt
- All Implemented Interfaces:
Serializable
,IBolt
,IComponent
,IRichBolt
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:
-
Field Summary
Fields inherited from class org.apache.storm.redis.bolt.AbstractRedisBolt
collector
-
Constructor Summary
ConstructorDescriptionRedisFilterBolt
(JedisClusterConfig config, RedisFilterMapper filterMapper) Constructor for Redis Cluster environment (JedisCluster).RedisFilterBolt
(JedisPoolConfig config, RedisFilterMapper filterMapper) Constructor for single Redis environment (JedisPool). -
Method Summary
Modifier and TypeMethodDescriptionvoid
declareOutputFields
(OutputFieldsDeclarer declarer) Declare the output schema for all the streams of this topology.void
Process a single non-tick tuple of input.Methods inherited from class org.apache.storm.redis.bolt.AbstractRedisBolt
cleanup, getInstance, prepare, returnInstance
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 Details
-
RedisFilterBolt
Constructor for single Redis environment (JedisPool).- Parameters:
config
- configuration for initializing JedisPoolfilterMapper
- mapper containing which datatype, query key that Bolt uses
-
RedisFilterBolt
Constructor for Redis Cluster environment (JedisCluster).- Parameters:
config
- configuration for initializing JedisClusterfilterMapper
- mapper containing which datatype, query key that Bolt uses
-
-
Method Details
-
process
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
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
-