# ssdbj **Repository Path**: tomdev/ssdbj ## Basic Information - **Project Name**: ssdbj - **Description**: ssdb 的java驱动,带有负载均衡 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 19 - **Created**: 2015-08-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ssdbj ===== SSDBJ是一款支持SSDB NoSQL数据库集群的驱动。 功能:
1、ssdb数据库连接池
2、支持多个SSDB数据库的master-slave集群
3、支持集群内部的master和slave的负载均衡,负载均衡暂时支持4中方式(Random round_robin round_robin_weight random_weight)
4、实现了读写分离
5、支持集群内slave获取not_found的情况下从master再次直接获取
6、支持同步未完成时slave读取error的情况下,从master尝试或者重复在slave中尝试。尝试次数可以再配置文件中修改。
具体参考 src/test/resource/ssdbj.xml ssdbj提供了3中使用方式: 1、直接手动创建连接,可以参考src/test/java/SSDBJTest.java
2、使用单库连接池,可以参考 src/test/java/SSDBPoolTest.java
3、使用集群模式,可以参考src/test/java/SSDBClusterTest.java
集群模式的配置文件可以参考src/test/resource/ssdbj.xml ## Who's using SSDBJ? ![职通网](http://www.zhitongjob.com/images/logo.png) [职通网] (http://www.zhitongjob.com) ##Java 单db连接demo ```java public class SSDBJTest { /** * @param args * @throws Exception */ @SuppressWarnings({ "serial", "rawtypes", "unchecked" }) public static void main(String[] args) throws Exception { SSDBDriver dd= new SSDBDriver(); Properties info = new Properties(); info.setProperty("user", "test"); info.setProperty("password", "ddd"); info.setProperty("loginTimeout", "300"); info.setProperty("tcpKeepAlive", "true"); info.setProperty("protocolName", "ssdb"); info.setProperty("protocolVersion", "ddd"); info.setProperty("SSDB_HOST", "192.168.0.226"); info.setProperty("SSDB_PORT", "8888"); SSDBConnection conn= dd.connect(info); ArrayList setparams=new ArrayList(){ { add("joliny".getBytes()); add("kkk".getBytes()); add("是的发生地发生1231sdfsfg23".getBytes()); } }; conn.execute("hset",setparams); ArrayList params=new ArrayList(); params.add("joliny".getBytes()); params.add("kkk".getBytes()); BaseResultSet rs=conn.execute("hget",params ); System.out.println(new String(rs.getResult())); } } ``` ##Java 单db数据库连接池Demo ```java public class SSDBPoolTest { static SSDBDataSource ds=null; static{ Properties info = new Properties(); info.setProperty("password", "ddd"); info.setProperty("loginTimeout", "300"); info.setProperty("tcpKeepAlive", "true"); info.setProperty("protocolName", "ssdb"); info.setProperty("protocolVersion", "1.0"); ds = new SSDBDataSource("192.168.0.226",8888,null,info); } /** * @param args * @throws Exception */ @SuppressWarnings({ "rawtypes", "unchecked" }) public static void main(String[] args) throws Exception { SSDBPoolConnection conn=null; for(int i=0;i<100000;i++){ try{ conn= ds.getConnection(); ArrayList params=new ArrayList(); params.add("joliny".getBytes()); params.add("kkk".getBytes()); BaseResultSet rs= conn.execute("hget",params ); System.out.println(new String(rs.getResult())); ArrayList mset_params=new ArrayList(); mset_params.add("a".getBytes()); mset_params.add("aaaaa1".getBytes()); mset_params.add("b".getBytes()); mset_params.add("bbbbbb2".getBytes()); conn.executeUpdate("multi_set", mset_params); ArrayList mget_params=new ArrayList(); mget_params.add("a".getBytes()); mget_params.add("b".getBytes()); BaseResultSet> m_rs= conn.execute("multi_get",mget_params ); Map items=m_rs.getResult(); Iterator ite=items.keySet().iterator(); while(ite.hasNext()){ byte[] key=ite.next(); System.out.println(new String(key)+"====="+new String(items.get(key))); } ArrayList scan_params=new ArrayList(); scan_params.add("".getBytes()); scan_params.add("".getBytes()); scan_params.add("10".getBytes()); BaseResultSet> scan_rs=conn.execute("scan",scan_params ); Map scan_items=scan_rs.getResult(); Iterator scan_ite=scan_items.keySet().iterator(); while(scan_ite.hasNext()){ byte[] key=scan_ite.next(); System.out.println(new String(key)+"====="+new String(scan_items.get(key))); } }finally{ conn.close(); } } } } ``` ##Java 多个db集群测试 ```java public class SSDBClusterTest { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { ArrayList params=new ArrayList(); params.add("joliny"); params.add("kkk"); BaseResultSet rs= SSDBJ.execute("userinfo_cluster",SSDBCmd.HGET,params); System.out.println(new String(rs.getResult())); } } ``` ```html m_userinfo s_userinfo1 ```