All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.taobao.tair.extend.TairManagerZset Maven / Gradle / Ivy

package com.taobao.tair.extend;

import java.io.Serializable;

import com.taobao.tair.Result;
import com.taobao.tair.ResultCode;

/**
 * Tair 扩展接口,支持ZSet(排序集合)系列操作
 * @author choutian.xmm
 *
 */
public interface TairManagerZset {
	
	/**
	 * 获取zset中某个value的估值
	 * @param namespace 对应的namespace的名字
	 * @param key 对应的zset的名字
	 * @param value 对应的value
	 * @return 返回一个DataEnty, key为输入的key, field为输入的value,
	 * 			value为double类型的score,否则返回错误码
	 */
	public Result zscore(short namespace, Serializable key, Serializable value);
	
	
	/**
	 * 获取排名(从小到大)在start到end之间的value,负数表示反向的范围
	 * @param namespace 对应的namespace的名字
	 * @param key 对应的zset的名字
	 * @param start 起始排名
	 * @param end 终止排名
	 * @return 返回一个DataEntryList,key为输入的key,value为从小到大的排列的List
	 */
	public Result zrange(short namespace, Serializable key, int start, int end);
	
	
	/**
	 * 获取排名(从大到小)在start到end之间的value,负数表示反向的范围
	 * @param namespace 对应的namespace的名字
	 * @param key 对应的zset的名字
	 * @param start 起始排名
	 * @param end 终止排名
	 * @return 返回一个DataEntryList,key为输入的key,value为从大到小的排列的List
	 */
	public Result zrevrange(short namespace, Serializable key, int start, int end);
	
	
	/**
	 * 获取排名(从小到大)在start到end之间的value
	 * @param namespace 对应的namespace的名字
	 * @param key 对应的zset的名字
	 * @param start 起始估值(权值)
	 * @param end 终止估值(权值)
	 * @return 返回一个DataEntryList,key为输入的key,value为从大到小的排列的List
	 */
	public Result zrangebyscore(short namespace, Serializable key,
			double start, double end);
	
	
	/**
	 * 往对应的zset中加入一个带权值的value
	 * @param namespace 对应的namespace的名字
	 * @param key 对应的zset的名字
	 * @param value 插入的value
	 * @param score value对应的权值 score支持小数点后6位小数 大于6位将被截短
	 * 截断方式不会进行四舍五入
	 * @param zadd的带版本验证版本,版本不对,返回错误 
	 * @param expire 超时时间  功能参见expire API
	 * @return 返回成功或者失败错误码
	 */
	public ResultCode zadd(short namespace, Serializable key, Serializable value,
			double score, short version, int expire);
	
	
	/**
	 * 返回某个value在对应zset中的排名
	 * @param namespace 对应的namespace的名字
	 * @param key 对应的zset的名字
	 * @param value 要获取的value
	 * @return 返回为一个DataEntryLong,key为key,field为输入的value, value为Long型的排名,否则返回错误码
	 */
	public Result zrank(short namespace, Serializable key, Serializable value);
	
	
	/**
	 * 返回某个value在对应zset中的排名
	 * @param namespace 对应的namespace的名字
	 * @param key 对应的zset的名字
	 * @param value 要获取的value
	 * @return 返回为一个DataEntryLong,key为key,field为输入的value, value为Long型的排名,否则返回错误码
	 */
	public Result zrevrank(short namespace, Serializable key, Serializable value);
	
	
	/**
	 * 获取对应zset中元素的个数
	 * @param namespace 对应的namespace的名字
	 * @param key 对应的zset的名字
	 * @return 返回为一个DataEntryLong,key为输入的key,value为Long型的个数,否则返回错误码
	 */
	public Result zcard(short namespace, Serializable key);
	
	
	/**
	 * 删除zset中的对应的key/value
	 * @param namespace 对应的namespace的名字
	 * @param version 带版本验证的版本,版本不对,返回错误
	 * @param key 对应的zset的名字
	 * @param value 要删除的对应的value
	 * @param expire 超时时间  功能参见expire API
	 * @return 返回成功或者错误码
	 */
	public ResultCode zrem(short namespace, Serializable key, Serializable value,
			short version, int expire);
	
	
	/**
	 * 删除zset某个权值范围的数据
	 * @param namespace 对应的namespace的名字
	 * @param version 带版本验证的版本,版本不对,返回错误
	 * @param key 对应的zset的名字
	 * @param start 起始的权值 支持小数点后6位
	 * @param end 终止的权值 支持小数点后6位
	 * @param expire 超时时间  功能参见expire API
	 * @return 返回一个DataEntryLong key为输入的key,value为实际删除的个数 ,否则返回错误码
	 */
	public Result zremrangebyscore(short namespace, Serializable key,
			double start, double end, short version, int expire);
	
	
	/**
	 * 按排名来删除某个排名段的元素
	 * @param namespace zset所在的namespace
	 * @param version 带版本验证的版本,版本不对,返回错误
	 * @param key 对应的zset的名字
	 * @param start 起始排名 
	 * @param end 终止排名
	 * @param exopire 超时时间  功能参见expire API
	 * @return 返回一个DataEntryLong, 其key为输出的key,value为删除的元素个数,如果不辞怎奈或其他问题返回相应的错误码
	 */
	public Result zremrangebyrank(short namespace, Serializable key,
			int start, int end, short version, int expire);
	
	/**
	 * 统计位于权值在start到end之间的元素个数
	 * @param namespace zset所在的namespace
	 * @param key 对应的zset的名字
	 * @param start 起始的权值
	 * @param end 终止的权值
	 * @return 返回一个DataEntryLong,其key为输入的key,value为元素个数,如果不存在或其他问题返回相应的错误码
	 */
	public Result zcount(short namespace, Serializable key, double start, double end);
	
	
	/**
	 * 对对应zset的value的对应score
	 * @param namespace zset所在的namespace
	 * @param key  对应zset的名字
	 * @param value 对应zset->key的value的元素
	 * @param addvalue  增加多少 支持小数点后6位
	 * @param version的带版本验证版本,版本不对,返回错误
	 * @param expire 设置超时时间  功能参见expire API
	 * @return 返回一个DataEntryDouble,其key为输入的key,value为输入的value,
	 * 			value为对应score+addvalue的值,如果不存在或其他问题返回相应的错误码
	 */
	public Result zincrby(short namespace, Serializable key,
			Serializable value, double addvalue, short version, int expire);
}