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

com.logicbus.redis.client.Client Maven / Gradle / Ivy

package com.logicbus.redis.client;

import java.lang.reflect.Constructor;

import com.alogic.pool.CloseAware;
import com.alogic.pool.PooledCloseable;
import com.logicbus.redis.util.RedisException;
import org.apache.commons.lang3.StringUtils;


/**
 * Redis客户端
 * @author duanyy
 *
 * @version 1.0.0.1 [20141106 duanyy] 
* - 修正设置index或password之后死循环的bug.
* * @version 1.6.6.9 [20161209 duanyy]
* - 从新的框架下继承
*/ public class Client extends Connection implements PooledCloseable{ /** * 当前数据库 */ private int db = 0; protected CloseAware closeAware = null; /** * 验证密码 */ private String password; /** * 设置当前DB * @param dbIndex */ public void setCurrentDB(final int dbIndex){ db = dbIndex; } /** * 获取当前DB * @return 当前的DB */ public long getCurrentDB(){ return db; } /** * 设置验证密码 * @param pwd */ public void setPassword(final String pwd){ password = pwd; } public Client(final String host) { super(host); } public Client(final String host, final int port) { super(host, port); } public Client(final String host, final int port, final int dbIndex){ super(host, port); db = dbIndex; } public Client(final String host, final int port, final String pwd){ super(host, port); password = pwd; } public Client(final String host, final int port, final String pwd, final int dbIndex){ super(host, port); db = dbIndex; password = pwd; } public void connect() { super.connect(); if (StringUtils.isNotEmpty(password)) { auth(password); } if (db > 0) { select(db); } } public void disconnect() { db = 0; if (isConnected(false)){ // to ask the server to close try { quit(); }catch (Exception ex){ } } super.disconnect(); } @Override public void poolClose() { if (closeAware != null){ closeAware.closeObject(this); } } @Override public void register(CloseAware listener) { closeAware = listener; } @Override public void unregister(CloseAware listener) { closeAware = null; } public Toolkit getToolKit(Class clazz){ try { Constructor c = clazz.getConstructor(Connection.class); return c.newInstance(this); }catch (Exception e){ throw new RedisException("core.e1002","can not get toolkit",e); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy