/*
 * Copyright (C), 2002-2015, 365
 * FileName: //文件名
 * Author:   Administrator
 * Date:     2015年11月4日 下午1:55:28
 * Description: //模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.house365.web.cached;

import java.util.Set;
import java.util.concurrent.TimeUnit;

/**
 * 〈一句话功能简述〉
 * 〈功能详细描述〉
 *
 * @author hqc
 */
public interface RedisUtilsInterface {
    /*  public void addKeyVal(final String key, final String value) ;
      public void addKeyValExpire(final String key, final String value,long second) ;
      public String getValByKey(final String key);*/
    public Object getObjectByKey(final String key);

    public void addKeyObjectExpire(final String key, final Object value, long second);

    void addKeyVal(String key, String value);

    void deleteKey(String key);

    void addKeyValExpire(
            String key, String value, long second
    );

    String getValByKey(String key);

    String getValByKeyNew(String key);

    Integer getIntegerByKey(String key);

    Long increaseByKey(String key);

    Long decreaseByKey(String key);

    void pushIntegerIntoRedisList(String key, Integer value);

    Integer popIntegerFromRedisList(String key);

    void removeRedisList(String key);

    long getListSize(String key);

    String getSet(String key, String value);

    boolean setNotExists(String key, String value);

    boolean hasKey(String key);

    Set<String> keys(String keyPattern);

    void removeKeys(Set<String> keys);

    void setValueNew(String key, String value);

    void setValueExpireNew(String key, String value, long expire, TimeUnit timeUnit);

    void deleteByKeyNew(String key);
}
