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使用:

<?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 https://github.com/ideawu/ssdb/archive/master.zip
unzip master
cd ssdb-master
make
# optional, install ssdb in /usr/local/ssdb
sudo 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单连接方式

@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的资料请关注我们其它相关文章!

(0)

相关推荐

  • Java连接数据库JDBC技术之prepareStatement的详细介绍

    一.prepareStatement 的用法和解释 1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程 2.使用 Statement 对象.在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理.PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处. 3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, p

  • java代码获取数据库表里数据的总数操作

    在访问数据库时,特别是新手,可能会需要查询表中数据总数,以下这段代码可以非常简便的获取到数据数目 //先建立数据库连接,执行查询语句 Connection conn = DriverManager.getConnection(URL, USER, PassWord); Statement st=conn.createStatement(); ResultSet rs =st.executeQuery("select count(*) as result from tablename")

  • Java连接mysql数据库的详细教程(推荐)

    该教程是面向那些不知道如何通过java连接mysql数据库的新手,所以该教程用的方法不是最优的方法,但求是最好理解的方法. 需要的工具: eclipse.mysql.mysql的驱动 mysql驱动链接:mysql-connector-java-5.1.7.zip 如果该链接下载不了的话,可以私信我 1.在eclipse中创建一个工程:jdbc 2.在工程下创建lib文件夹 鼠标右键点击jdbc工程 --> New -->Folder. 文件夹命名为lib 3.导入mysql驱动 解压上述连接

  • java实现批量导入Excel表格数据到数据库

    本文是基于Apache poi类实现的批量导入读取Excel文件,所以要先引入Apache poi的依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.1</version> </dependency> <dependency> <groupId>org.a

  • Java数据库操作库DButils类的使用方法与实例详解

    DbUtils是Javar的一个为简化JDBC操作类库 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. 整个dbutils总共才3个包: org.apache.commons.dbutils (该包中的类主要帮助我们更便捷的操作JDBC) org.apache.commons.db

  • java连接mysql数据库实现单条插入和批量插入

    本文实例为大家分享了java连接mysql数据库实现单条和批量插入的具体代码,供大家参考,具体内容如下 本文插入数据库的数据来源:java + dom4j.jar提取xml文档内容 1.连接数据库 package com.njupt.ymh; import java.sql.DriverManager; import java.sql.SQLException; import com.mysql.jdbc.Connection; public class Connect_MySQL { priv

  • 详解java连接mysql数据库的五种方式

    第一种方式:将用户名和密码封装在Properties类中 首先,导入数据库连接包这个是毋庸置疑的.创建一个jdbc驱动dirver.将数据库(以MySQL为例)的url保存在所创建的字符串url中.如果mysql版本低于8.0,则url保存形式应该为: String url = "jdbc:mysql://localhost:3306/test" 如果mysql版本为8.0版本或以上,url保存形式为: String url = "jdbc:mysql://localhost

  • 在IntelliJ IDEA中使用Java连接MySQL数据库的方法详解

    一.下载MySQL数据库并进行安装和配置 下载地址:https://dev.mysql.com/downloads/installer/ 二.下载JDBC连接器 下载地址:mysql-connector-java-8.0.22 下载好压缩包并解压后找到mysql-connector-java-8.0.22.jar文件放在自己指定的路径下. 三.在项目中导入jar包 用于测试数据库连接的测试类Test.java代码: import java.sql.Connection; import java.

  • Java向数据库插入中文出现乱码解决方案

    主要解决方向,JAVA与MYSQL中编码要统一.通常采用UTF-8. 这里虽然你在项目中设置了数据库采用UTF-8,但是那里不包括连接方式之类的. 1.查询自身MYSQL编码方式 MySQL默认编码是latin1 mysql> show variables like 'character%'; +--------------------------+--------------------------+ | Variable_name | Value | +-------------------

  • Java连接数据库oracle中文乱码解决方案

    今天写了一个java项目连接数据库,之后写了一个执行入库操作的模块.此时暴露出一个问题就是项目的中文插入到数据库时会是乱码: 项目输出的中文: 执行插入操作后数据库中内容: 此时CustomerNumber字段是乱码. 出现这种情况一般都是数据库编码与项目编码不一致导致的,首先查看项目与数据库的编码格式: 查看项目编码: 项目的编码是gbk格式 查看数据库编码格式: 数据库编码格式是ISO-8859-1 以上查看编码格式操作可以百度 出现这种情况一般可以通过两种方式解决.一是修改数据库或者项目的

  • 解决mybatis 数据库date 与 java中Date类型映射问题

    使用mybatis 从数据库中查询出date 类型字段,在java 类型中只看到了日期,没有看到时分秒, 从数据库中是可以看到时分秒的.后来发现是mybatis 映射数据类型的原因: 如: <result column="CREATEDATE" property="createdate" jdbcType="Date" /> 映射出来的时间格式时分秒都为0 (2017-01=12 00:00:00) <result column

随机推荐