blob: 6f3e6c14eab61aa1a77a82898aa93c371fc4956e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.flink.streaming.connectors.redis.common.container;
import java.io.IOException;
import java.io.Serializable;
/**
* The container for all available Redis commands.
*/
public interface RedisCommandsContainer extends Serializable {
/**
* Open the Jedis container.
*
* @throws Exception if the instance can not be opened properly
*/
void open() throws Exception;
/**
* Sets field in the hash stored at key to value, with TTL, if needed.
* Setting expire time to key is optional.
* If key does not exist, a new key holding a hash is created.
* If field already exists in the hash, it is overwritten.
*
* @param key Hash name
* @param hashField Hash field
* @param value Hash value
* @param ttl Hash expire time
*/
void hset(String key, String hashField, String value, Integer ttl);
void hincrBy(String key, String hashField, Long value, Integer ttl);
/**
* Insert the specified value at the tail of the list stored at key.
* If key does not exist, it is created as empty list before performing the push operation.
*
* @param listName Name of the List
* @param value Value to be added
*/
void rpush(String listName, String value);
/**
* Insert the specified value at the head of the list stored at key.
* If key does not exist, it is created as empty list before performing the push operation.
*
* @param listName Name of the List
* @param value Value to be added
*/
void lpush(String listName, String value);
/**
* Add the specified member to the set stored at key.
* Specified members that are already a member of this set are ignored.
* If key does not exist, a new set is created before adding the specified members.
*
* @param setName Name of the Set
* @param value Value to be added
*/
void sadd(String setName, String value);
/**
* Posts a message to the given channel.
*
* @param channelName Name of the channel to which data will be published
* @param message the message
*/
void publish(String channelName, String message);
/**
* Set key to hold the string value. If key already holds a value, it is overwritten,
* regardless of its type. Any previous time to live associated with the key is
* discarded on successful SET operation.
*
* @param key the key name in which value to be set
* @param value the value
*/
void set(String key, String value);
/**
* Set key to hold the string value, with a time to live (TTL). If key already holds a value,
* it is overwritten, regardless of its type. Any previous time to live associated with the key is
* reset on successful SETEX operation.
*
* @param key the key name in which value to be set
* @param value the value
* @param ttl time to live (TTL)
*/
void setex(String key, String value, Integer ttl);
/**
* Adds all the element arguments to the HyperLogLog data structure
* stored at the variable name specified as first argument.
*
* @param key The name of the key
* @param element the element
*/
void pfadd(String key, String element);
/**
* Adds the specified member with the specified scores to the sorted set stored at key.
*
* @param key The name of the Sorted Set
* @param score Score of the element
* @param element element to be added
*/
void zadd(String key, String score, String element);
/**
* Removes the specified member from the sorted set stored at key.
*
* @param key The name of the Sorted Set
* @param element element to be removed
*/
void zrem(String key, String element);
/**
* increase value to specified key and expire the key with fixed time.
* @param key the key name in which value to be set
* @param value the value
* @param ttl time to live (TTL)
*/
void incrByEx(String key, Long value, Integer ttl);
/**
* decrease value from specified key and expire the key.
* @param key the key name in which value to be set
* @param value value the value
* @param ttl time to live (TTL)
*/
void decrByEx(String key, Long value, Integer ttl);
/**
* increase value to specified key.
* @param key the key name in which value to be set
* @param value the value
*/
void incrBy(String key, Long value);
/**
* decrease value from specified key.
* @param key the key name in which value to be set
* @param value value the value
*/
void decrBy(String key, Long value);
/**
* Close the Jedis container.
*
* @throws IOException if the instance can not be closed properly
*/
void close() throws IOException;
}