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
ConstructorsConstructorDescriptionRedisFilterBolt(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 TypeMethodDescriptionvoiddeclareOutputFields(OutputFieldsDeclarer declarer) Declare the output schema for all the streams of this topology.voidProcess a single non-tick tuple of input.Methods inherited from class org.apache.storm.redis.bolt.AbstractRedisBolt
cleanup, getInstance, prepareMethods inherited from class org.apache.storm.topology.base.BaseTickTupleAwareRichBolt
execute, onTickTupleMethods inherited from class org.apache.storm.topology.base.BaseComponent
getComponentConfigurationMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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:
processin 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
-