All Projects → RyanLeeLY → Fastkv

RyanLeeLY / Fastkv

Licence: mit
FastKV is a real-time and high-performance persistent key-value store implemented by mmap. FastKV是由mmap实现的一个高实时性、高性能key-value持久化存储组件。

Projects that are alternatives of or similar to Fastkv

Microblob
Serve millions of JSON documents via HTTP.
Stars: ✭ 45 (-72.39%)
Mutual labels:  key-value, store
keyv
Simple key-value storage with support for multiple backends.
Stars: ✭ 202 (+23.93%)
Mutual labels:  key-value, store
Saleor
A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and React.
Stars: ✭ 14,720 (+8930.67%)
Mutual labels:  store
Immudb
immudb - world’s fastest immutable database, built on a zero trust model
Stars: ✭ 3,743 (+2196.32%)
Mutual labels:  key-value
Android Cookie Store
Android InMemory and persistent Cookie Store for HttpURLConnection and OkHttp, with extensions to easily sync cookies in Android WebViews.
Stars: ✭ 144 (-11.66%)
Mutual labels:  store
Store
Official Function and Template Store for OpenFaaS
Stars: ✭ 136 (-16.56%)
Mutual labels:  store
Nuster
A high performance HTTP proxy cache server and RESTful NoSQL cache server based on HAProxy
Stars: ✭ 1,825 (+1019.63%)
Mutual labels:  key-value
Ardb
A redis protocol compatible nosql, it support multiple storage engines as backend like Google's LevelDB, Facebook's RocksDB, OpenLDAP's LMDB, PerconaFT, WiredTiger, ForestDB.
Stars: ✭ 1,707 (+947.24%)
Mutual labels:  key-value
Bolt
An embedded key/value database for Go.
Stars: ✭ 12,415 (+7516.56%)
Mutual labels:  key-value
Verdi Raft
An implementation of the Raft distributed consensus protocol, verified in Coq using the Verdi framework
Stars: ✭ 143 (-12.27%)
Mutual labels:  key-value
Appstore
🏪 App Store for Nextcloud
Stars: ✭ 149 (-8.59%)
Mutual labels:  store
Aspnetcore Angular Ngrx
🚀 An ASP.NET Core WebAPI Demo with an Angular Client using Ngrx store and effects and Signalr
Stars: ✭ 141 (-13.5%)
Mutual labels:  store
L4
L4 (Lock-Free on Read) Hashtable is a C++ library that implements hash table with arbitray byte stream keys/values.
Stars: ✭ 136 (-16.56%)
Mutual labels:  store
Spree
Open Source headless multi-language/multi-currency/multi-store eCommerce platform
Stars: ✭ 11,571 (+6998.77%)
Mutual labels:  store
Arangodb
🥑 ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.
Stars: ✭ 11,880 (+7188.34%)
Mutual labels:  key-value
Kiwi
A minimalistic in-memory key value store.
Stars: ✭ 154 (-5.52%)
Mutual labels:  key-value
App Outlet
A Universal linux app store
Stars: ✭ 131 (-19.63%)
Mutual labels:  store
Olric
Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.
Stars: ✭ 2,067 (+1168.1%)
Mutual labels:  key-value
Cezerin2
Cezerin2 is React and Node.js based eCommerce platform. React Shopping Cart. "All In One" App: Cezerin API + Cezerin Storefront + Cezerin Dashboard.
Stars: ✭ 144 (-11.66%)
Mutual labels:  store
Sdb
Simple and fast string based key-value database with support for arrays and json
Stars: ✭ 159 (-2.45%)
Mutual labels:  key-value

FastKV

Platform Version License MIT Gmail Twitter

中文介绍

Usage

[[FastKV defaultFastKV] setBool:YES forKey:@"key"];
[[FastKV defaultFastKV] setInteger:1 forKey:@"key"];
[[FastKV defaultFastKV] setObject:@"value" forKey:@"key"];

[[FastKV defaultFastKV] boolForKey:@"key"];
[[FastKV defaultFastKV] integerForKey:@"key"];
[[FastKV defaultFastKV] objectOfClass:NSString.class forKey:@"key"];

Memory Allocation

FastKV provides two kinds of memory allocation strategy.

typedef NS_ENUM(NSUInteger, FastKVMemoryStrategy) {
    FastKVMemoryStrategyDefault = 0,
    FastKVMemoryStrategy1,
};

Doubling FastKVMemoryStrategyDefault

size_t allocationSize = 1;
    while (allocationSize <= neededSize) {
        allocationSize *= 2;
    }
    return allocationSize;

Linear FastKVMemoryStrategy1

Reference python list

size_t allocationSize = (neededSize >> 3) + (neededSize < 9 ? 3 : 6);
return allocationSize + neededSize;

Installation

FastKV is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'FastKV'

Benchmark

iPhone 8 64G, iOS 11.4

Time taken of 10,000 write operations, unit: ms

Benchmark

Author

yao.li, [email protected]

License

FastKV is available under the MIT license. See the LICENSE file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].