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

com.aliyun.tair.tairstring.TairStringCluster Maven / Gradle / Ivy

package com.aliyun.tair.tairstring;

import com.aliyun.tair.ModuleCommand;
import com.aliyun.tair.tairstring.params.CasParams;
import com.aliyun.tair.tairstring.params.ExincrbyFloatParams;
import com.aliyun.tair.tairstring.params.ExincrbyParams;
import com.aliyun.tair.tairstring.params.ExsetParams;
import com.aliyun.tair.tairstring.results.ExcasResult;
import com.aliyun.tair.tairstring.results.ExgetResult;
import com.aliyun.tair.tairstring.factory.StringBuilderFactory;
import com.aliyun.tair.tairstring.results.ExincrbyVersionResult;
import redis.clients.jedis.BuilderFactory;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.util.SafeEncoder;

import static redis.clients.jedis.Protocol.toByteArray;

public class TairStringCluster {
    private JedisCluster jc;

    public TairStringCluster(JedisCluster jc) {
        this.jc = jc;
    }

    public Long cas(String key, String oldvalue, String newvalue) {
        return cas(SafeEncoder.encode(key), SafeEncoder.encode(oldvalue), SafeEncoder.encode(newvalue));
    }

    public Long cas(byte[] key, byte[] oldvalue, byte[] newvalue) {
        Object obj = jc.sendCommand(key, ModuleCommand.CAS, key, oldvalue, newvalue);
        return BuilderFactory.LONG.build(obj);
    }

    public Long cas(String key, String oldvalue, String newvalue, CasParams params) {
        return cas(SafeEncoder.encode(key), SafeEncoder.encode(oldvalue), SafeEncoder.encode(newvalue), params);
    }

    public Long cas(byte[] key, byte[] oldvalue, byte[] newvalue, CasParams params) {
        Object obj = jc.sendCommand(key, ModuleCommand.CAS, params.getByteParams(key, oldvalue, newvalue));
        return BuilderFactory.LONG.build(obj);
    }

    public Long cad(String key, String value) {
        return cad(SafeEncoder.encode(key), SafeEncoder.encode(value));
    }

    public Long cad(byte[] key, byte[] value) {
        Object obj = jc.sendCommand(key, ModuleCommand.CAD, key, value);
        return BuilderFactory.LONG.build(obj);
    }

    public String exset(String key, String value) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXSET, key, value);
        return BuilderFactory.STRING.build(obj);
    }

    public String exset(byte[] key, byte[] value) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXSET, key, value);
        return BuilderFactory.STRING.build(obj);
    }

    public String exset(String key, String value, ExsetParams params) {
        Object obj = jc.sendCommand(SafeEncoder.encode(key), ModuleCommand.EXSET, params.getByteParams(key, value));
        return BuilderFactory.STRING.build(obj);
    }

    public String exset(byte[] key, byte[] value, ExsetParams params) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXSET, params.getByteParams(key, value));
        return BuilderFactory.STRING.build(obj);
    }

    public Long exsetVersion(String key, String value, ExsetParams params) {
        Object obj = jc.sendCommand(SafeEncoder.encode(key), ModuleCommand.EXSET,
            params.getByteParams(key, value, "WITHVERSION"));
        return BuilderFactory.LONG.build(obj);
    }

    public Long exsetVersion(byte[] key, byte[] value, ExsetParams params) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXSET,
            params.getByteParams(key, value, "WITHVERSION".getBytes()));
        return BuilderFactory.LONG.build(obj);
    }

    public ExgetResult exget(String key) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXGET, key);
        return StringBuilderFactory.EXGET_RESULT_STRING.build(obj);
    }

    public ExgetResult exget(byte[] key) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXGET, key);
        return StringBuilderFactory.EXGET_RESULT_BYTE.build(obj);
    }

    public ExgetResult exgetFlags(String key) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXGET, key, "WITHFLAGS");
        return StringBuilderFactory.EXGET_RESULT_STRING.build(obj);
    }

    public ExgetResult exgetFlags(byte[] key) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXGET, key, "WITHFLAGS".getBytes());
        return StringBuilderFactory.EXGET_RESULT_BYTE.build(obj);
    }

    public Long exsetver(String key, long version) {
        return exsetver(SafeEncoder.encode(key), version);
    }

    public Long exsetver(byte[] key, long version) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXSETVER, key, toByteArray(version));
        return BuilderFactory.LONG.build(obj);
    }

    public Long exincrBy(String key, long incr) {
        return exincrBy(SafeEncoder.encode(key), incr);
    }

    public Long exincrBy(byte[] key, long incr) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXINCRBY, key, toByteArray(incr));
        return BuilderFactory.LONG.build(obj);
    }

    public Long exincrBy(String key, long incr, ExincrbyParams params) {
        return exincrBy(SafeEncoder.encode(key), incr, params);
    }

    public Long exincrBy(byte[] key, long incr, ExincrbyParams params) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXINCRBY, params.getByteParams(key, toByteArray(incr)));
        return BuilderFactory.LONG.build(obj);
    }

    public ExincrbyVersionResult exincrByVersion(String key, long incr, ExincrbyParams params) {
        return exincrByVersion(SafeEncoder.encode(key), incr, params);
    }

    public ExincrbyVersionResult exincrByVersion(byte[] key, long incr, ExincrbyParams params) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXINCRBY,
            params.getByteParams(key, toByteArray(incr), "WITHVERSION".getBytes()));
        return StringBuilderFactory.EXINCRBY_VERSION_RESULT_STRING.build(obj);
    }

    public Double exincrByFloat(String key, Double incr) {
        return exincrByFloat(SafeEncoder.encode(key), incr);
    }

    public Double exincrByFloat(byte[] key, Double incr) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXINCRBYFLOAT, key, toByteArray(incr));
        return BuilderFactory.DOUBLE.build(obj);
    }

    public Double exincrByFloat(String key, Double incr, ExincrbyFloatParams params) {
        return exincrByFloat(SafeEncoder.encode(key), incr, params);
    }

    public Double exincrByFloat(byte[] key, Double incr, ExincrbyFloatParams params) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXINCRBYFLOAT, params.getByteParams(key, toByteArray(incr)));
        return BuilderFactory.DOUBLE.build(obj);
    }

    public ExcasResult excas(String key, String newvalue, long version) {

        Object obj = jc.sendCommand(key, ModuleCommand.EXCAS, key, newvalue, String.valueOf(version));
        return StringBuilderFactory.EXCAS_RESULT_STRING.build(obj);
    }

    public ExcasResult excas(byte[] key, byte[] newvalue, long version) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXCAS, key, newvalue, toByteArray(version));
        return StringBuilderFactory.EXCAS_RESULT_BYTE.build(obj);
    }

    public Long excad(String key, long version) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXCAD, key, String.valueOf(version));
        return BuilderFactory.LONG.build(obj);
    }

    public Long excad(byte[] key, long version) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXCAD, key, toByteArray(version));
        return BuilderFactory.LONG.build(obj);
    }

    public Long exappend(String key, String value, String nxxx, String verabs, long version) {
        return exappend(SafeEncoder.encode(key), SafeEncoder.encode(value), nxxx, verabs, version);
    }

    public Long exappend(byte[] key, byte[] value, String nxxx, String verabs, long version) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXAPPEND, key, value, SafeEncoder.encode(nxxx),
            SafeEncoder.encode(verabs), toByteArray(version));
        return BuilderFactory.LONG.build(obj);
    }

    public Long exprepend(String key, String value, String nxxx, String verabs, long version) {
        return exprepend(SafeEncoder.encode(key), SafeEncoder.encode(value), nxxx, verabs, version);
    }

    public Long exprepend(byte[] key, byte[] value, String nxxx, String verabs, long version) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXPREPEND, key, value, SafeEncoder.encode(nxxx),
            SafeEncoder.encode(verabs), toByteArray(version));
        return BuilderFactory.LONG.build(obj);
    }

    public ExgetResult exgae(String key, String expxwithat, long time) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXGAE, key, expxwithat, Long.toString(time));
        return StringBuilderFactory.EXGET_RESULT_STRING.build(obj);
    }

    public ExgetResult exgae(byte[] key, String expxwithat, long time) {
        Object obj = jc.sendCommand(key, ModuleCommand.EXGAE, key, SafeEncoder.encode(expxwithat),
            toByteArray(time));
        return StringBuilderFactory.EXGET_RESULT_BYTE.build(obj);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy