您好,登錄后才能下訂單哦!
使用怎么Java怎么操作數據庫leveldb?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
<dependency> <groupId>org.iq80.leveldb</groupId> <artifactId>leveldb-api</artifactId> <version>0.10</version> </dependency> <dependency> <groupId>org.iq80.leveldb</groupId> <artifactId>leveldb</artifactId> <version>0.10</version> </dependency>
初始化DB
DBFactory factory = new Iq80DBFactory(); Options options = new Options(); options.createIfMissing(true); //folder 是db存儲目錄 DB db = factory.open(new File(folder), options);
存儲Key Value 值
//levelDB 的api存儲都是字節數組 所以這里需要轉成字節數組 db.put(Iq80DBFactory.bytes(key), Iq80DBFactory.bytes(value));
獲取Value
byte[] bytes = db.get(Iq80DBFactory.bytes(key)); String value = Iq80DBFactory.asString(bytes);
刪除|更改
//刪除 db.delete(Iq80DBFactory.bytes(key)); //更改 重新put新的key - value即可 db.put(Iq80DBFactory.bytes(key), Iq80DBFactory.bytes(value));
遍歷所有數據
public LinkedHashMap<String, String> iteratorDb() { DBIterator iterator = db.iterator(); LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<>(); while (iterator.hasNext()) { Map.Entry<byte[], byte[]> next = iterator.next(); String key = Iq80DBFactory.asString(next.getKey()); String value = Iq80DBFactory.asString(next.getValue()); linkedHashMap.put(key, value); } return linkedHashMap; }
基于SpringBoot搭建的控制器
隨機生成 指定數量的UUID 并且插入到LevelDB
從請求 到響應 5.5秒左右 如果再拋掉生成UUID的時間 可能更快 哈哈
@ResponseBody @GetMapping("/generate") public ResponeEntity generate(Long count) { DB db = levelDb.getDb(); //創建批量處理 WriteBatch batch = db.createWriteBatch(); for (int i = 0; i < count; i++) { String uuid = UUID.randomUUID().toString(); batch.put(Iq80DBFactory.bytes(uuid), Iq80DBFactory.bytes(uuid)); } //執行寫入 db.write(batch); return buildRespone(null); }
PostMan 請求到響應時間 19毫秒
@ResponseBody @GetMapping("/getLevel") public ResponeEntity getLevel(String key) { byte[] bytes = db.get(Iq80DBFactory.bytes(key)); String value = Iq80DBFactory.asString(bytes); return buildRespone(value); }
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。