com.logicbus.kvalue.core.HashRow Maven / Gradle / Ivy
package com.logicbus.kvalue.core;
import java.util.List;
import java.util.Map;
/**
* 基于Hash的Row
*
* @author duanyy
*
* @version 1.6.5.40 [20160804 duanyy]
* - 增加getAll接口
*
* @version 1.1.6.11 [20161227 duanyy]
* - 增加max,min,avg操作
*/
public interface HashRow extends KeyValueRow{
/**
* 获取Hash中所有取值的列表
*/
public List values();
/**
* 获取Hash中所有key的列表
*/
public List keys();
/**
* 删除Hash中一个或多个Field
* @param fields field的key列表
* @return 被删除的Field个数
*/
public long del(final String...fields);
/**
* 测试Hash中是否存在指定的field
* @param field
* @return 是否存在
*/
public boolean exists(final String field);
/**
* 获取Hash中指定的field
* @param field
* @return 指定field的值
*/
public String get(final String field,final String dftValue);
/**
* 获取Hash中指定的field
* @param field
* @return 指定field的值
*/
public long get(final String field,final long dftValue);
/**
* 获取Hash中指定的field
* @param field
* @return 指定field的值
*/
public double get(final String field,final double dftValue);
/**
* 获取Hash的所有数据
* @return Map形式的数据
*/
public Map getAll();
/**
* 获取Hash的所有数据
* @param json 预定义的json,如果为空,将创建一个
* @return Map形式的数据
*/
public Map getAll(Map json);
/**
* 设置Field
* @param field
* @param value
* @return 本次操作是否成功
*/
public boolean set(final String field,final String value);
/**
* 设置field
* @param field
* @param value
* @return 本次操作是否成功
*/
public boolean set(final String field,final long value);
/**
* 设置field
* @param field
* @param value
* @return 本次操作是否成功
*/
public boolean set(final String field,final double value);
/**
* 设置多个field
* @param keyvalues
* @return 本次操作是否成功
*/
public boolean mset(final String...keyvalues);
/**
* 对指定Field的值进行增量加减
* @param field
* @param increment
* @return 操作前的值
*/
public long incr(final String field,final long increment);
/**
* 对指定Field的值进行max操作
*
* 如果当前值比latest小,则设置当前值为latest
*
* @param field 指定的field
* @param latest 最新值
* @return 操作前的值
*/
public long max(final String field,final long latest);
/**
* 对指定Field的值进行min操作
* @param field 指定的field
* @param latest 最新值
* @return 操作前的值
*/
public long min(final String field,final long latest);
/**
* 对指定Field的值进行avg操作
* @param field 指定的field
* @param latest 最新值
* @param rate 比率
* @return 操作前的值
*/
public long avg(final String field,final long latest,final double rate);
/**
* 对指定Field的值进行增量加减
* @param field
* @param increment
* @return 操作前的值
*/
public double incr(final String field,final double increment);
/**
* 对指定Field的值进行max操作
*
*
如果当前值比latest小,则设置当前值为latest
*
* @param field 指定的field
* @param latest 最新值
* @return 操作前的值
*/
public double max(final String field,final double latest);
/**
* 对指定Field的值进行min操作
* @param field 指定的field
* @param latest 最新值
* @return 操作前的值
*/
public double min(final String field,final double latest);
/**
* 对指定Field的值进行avg操作
* @param field 指定的field
* @param latest 最新值
* @param rate 比率
* @return 操作前的值
*/
public double avg(final String field,final double latest,final double rate);
/**
* 获取多个field的取值
* @param fields
* @return Field的值的列表
*/
public List mget(final String...fields);
/**
* 获取Hash中Field个数
* @return Field个数
*/
public long length();
}