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

com.logicbus.redis.kvalue.RedisStringRow Maven / Gradle / Ivy

There is a newer version: 1.6.17
Show newest version
package com.logicbus.redis.kvalue;

import java.util.concurrent.TimeUnit;

import com.logicbus.kvalue.common.Partition;
import com.logicbus.kvalue.core.StringRow;
import com.logicbus.kvalue.core.Table.DataType;
import com.logicbus.redis.client.Client;
import com.logicbus.redis.context.RedisContext;
import com.logicbus.redis.params.SetParams;
import com.logicbus.redis.toolkit.StringTool;
import org.apache.commons.lang3.StringUtils;

/**
 * StringValueTool的Redis实现
 * 
 * @author duanyy
 *
 */
public class RedisStringRow extends RedisBaseRow implements StringRow {

	public RedisStringRow(DataType _dataType, String _key,
			boolean _enableRWSplit, RedisContext _source, Partition _partition) {
		super(_dataType, _key, _enableRWSplit, _source, _partition);
	}

	
	public boolean set(String value) {
		Client client = getClient(false);
		try {
			StringTool tool = (StringTool)client.getToolKit(StringTool.class);
			return tool.set(key(), value);
		}finally{
			client.poolClose();
		}
	}

	
	public boolean set(String value, long ttl, boolean writeIfExist,
			boolean writeifNotExist) {
		Client client = getClient(false);
		
		try {
			StringTool tool = (StringTool)client.getToolKit(StringTool.class);
			
			SetParams params = new SetParams();
			params.ttl(ttl, TimeUnit.MILLISECONDS);
			if (writeIfExist){
				params.onlySet(false);
			}else{
				if (writeifNotExist){
					params.onlySet(true);
				}
			}
			
			return tool.set(key(), value,params);
		}finally{
			client.poolClose();
		}
	}

	
	public String get(String dftValue) {
		Client client = getClient(true);
		try {
			StringTool tool = (StringTool)client.getToolKit(StringTool.class);
			String data = tool.get(key(), dftValue);
			return StringUtils.isEmpty(data)?dftValue:data;
		}finally{
			client.poolClose();
		}
	}

	
	public long setRange(long offset, String value) {
		Client client = getClient(false);
		try {
			StringTool tool = (StringTool)client.getToolKit(StringTool.class);
			return tool.setrange(key(), offset, value);
		}finally{
			client.poolClose();
		}
	}

	
	public long append(String value) {
		Client client = getClient(false);
		try {
			StringTool tool = (StringTool)client.getToolKit(StringTool.class);
			return tool.append(key(), value);
		}finally{
			client.poolClose();
		}
	}

	
	public long strlen() {
		Client client = getClient(true);
		try {
			StringTool tool = (StringTool)client.getToolKit(StringTool.class);
			return tool.strlen(key());
		}finally{
			client.poolClose();
		}
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy