java使用内存数据库ssdb的步骤
看这篇文章的同学,redis相信你一定很熟悉了,ssdb是一个功能类似于redis,性能稍弱于redis的高性能数据库,主要是可以使用磁盘代替内存,使得小内存可以胜任请求不高的大部分场景,从而节约资源。ssdb官方是这样评价的 : 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.
1. 特性
替代 Redis 数据库, Redis 的 100 倍容量 LevelDB 网络支持, 使用 C/C++ 开发 Redis API 兼容, 支持 Redis 客户端 适合存储集合数据, 如 list, hash, zset... 客户端 API 支持的语言包括: C++, PHP, Python, Java, Go 持久化的队列服务 主从复制, 负载均衡支持多种api,比如php使用:
<?phprequire_once(’SSDB.php’);$ssdb = new SimpleSSDB(’127.0.0.1’, 8888);$resp = $ssdb->set(’key’, ’123’);$resp = $ssdb->get(’key’);echo $resp; // output: 123
2. 安装
wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zipunzip mastercd ssdb-mastermake# optional, install ssdb in /usr/local/ssdbsudo make install
3. 启动
# start master./ssdb-server ssdb.conf# or start as daemon./ssdb-server -d ssdb.conf
4. 与redis性能对比
5. java 读写ssdb
java操作ssdb需要的maven依赖:
<dependency> <groupId>com.lovver</groupId> <artifactId>ssdbj</artifactId> <version>0.0.1</version></dependency>
java读取ssdb,有两种方式,分别是单连接和连接池的方式,亲测以下方式都可以用:
SSDBConnection单连接方式
@Testpublic void test(){ SSDBDriver dd= new SSDBDriver(); Properties info = new Properties(); info.setProperty('SSDB_HOST', '192.168.1.1'); info.setProperty('SSDB_PORT', '8888'); // 密码 info.setProperty('password', 'ssdb.test'); info.setProperty('loginTimeout', '300'); info.setProperty('tcpKeepAlive', 'true'); info.setProperty('protocolName', 'ssdb'); info.setProperty('protocolVersion', '1.0'); SSDBConnection conn = null; try{ conn = dd.connect(info); System.out.println(conn); // 写入数据到ssdb ArrayList<byte[]> setParams=new ArrayList<byte[]>(){ { add('joliny'.getBytes()); add('是的发生地发生1231sdfsfg23'.getBytes()); } }; conn.execute('set',setParams); // 从ssdb读取数据 List params=new ArrayList(); params.add('joliny'.getBytes()); BaseResultSet<byte[]> rs=conn.execute('get',params); System.out.println(new String(rs.getResult())); } catch (SSDBException e) { e.printStackTrace(); }finally { if(conn != null){ conn.close(); } }}
SSDBPoolConnection连接池方式多线程通常需要用连接池的方式,提高效率。
import com.lovver.ssdbj.core.BaseResultSet;import com.lovver.ssdbj.core.SSDBDriver;import com.lovver.ssdbj.core.impl.SSDBConnection;import com.lovver.ssdbj.exception.SSDBException;import com.lovver.ssdbj.pool.SSDBDataSource;import com.lovver.ssdbj.pool.SSDBPoolConnection;import org.junit.Test;import java.util.ArrayList;import java.util.List;import java.util.Properties;/** * @Author: keguang * @Date: 2020/2/17 16:23 * @version: v1.0.0 * @description: */public class SSDBTest { private static SSDBDataSource ds=null; static{ Properties info = new Properties(); info.setProperty('password', 'ssdb.test'); info.setProperty('loginTimeout', '300'); info.setProperty('tcpKeepAlive', 'true'); info.setProperty('protocolName', 'ssdb'); info.setProperty('protocolVersion', '1.0'); ds = new SSDBDataSource('192.168.1.1',8888,null,info); } @Test public void test2(){ SSDBPoolConnection conn=null; try { conn = ds.getConnection(); System.out.println(conn); ArrayList<byte[]> setParams=new ArrayList<byte[]>(){ { add('language'.getBytes()); add('zh-CN'.getBytes()); } }; conn.execute('set',setParams); ArrayList params=new ArrayList(); params.add('language'.getBytes()); BaseResultSet<byte[]> rs= conn.execute('get',params); if(rs.getResult() == null){ System.out.println('null'); } System.out.println(new String(rs.getResult())); } catch (Exception e) { e.printStackTrace(); }finally { if (conn != null){ conn.close(); } } }}
以上就是java使用内存数据库ssdb的步骤的详细内容,更多关于java使用内存数据库ssdb的资料请关注好吧啦网其它相关文章!
相关文章: