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的資料請關注好吧啦網其它相關文章!
相關文章: