如何通过Java操作内存数据库SSDB?

2026-04-30 09:052阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计831个文字,预计阅读时间需要4分钟。

如何通过Java操作内存数据库SSDB?

这篇文章介绍了Redis的一个类似功能,称其为SSDB。它强调SSDB在性能上略逊于Redis,但主要优势在于使用磁盘代替内存来存储数据,从而减少内存使用。这使得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使用:

<?php require_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 github.com/ideawu/ssdb/archive/master.zip unzip master cd ssdb-master make # optional, install ssdb in /usr/local/ssdb sudo make install

3. 启动

如何通过Java操作内存数据库SSDB?

# 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单连接方式

@Test public 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的资料请关注易盾网络其它相关文章!

本文共计831个文字,预计阅读时间需要4分钟。

如何通过Java操作内存数据库SSDB?

这篇文章介绍了Redis的一个类似功能,称其为SSDB。它强调SSDB在性能上略逊于Redis,但主要优势在于使用磁盘代替内存来存储数据,从而减少内存使用。这使得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使用:

<?php require_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 github.com/ideawu/ssdb/archive/master.zip unzip master cd ssdb-master make # optional, install ssdb in /usr/local/ssdb sudo make install

3. 启动

如何通过Java操作内存数据库SSDB?

# 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单连接方式

@Test public 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的资料请关注易盾网络其它相关文章!