RyanLeeLY / Fastkv
Licence: mit
FastKV is a real-time and high-performance persistent key-value store implemented by mmap. FastKV是由mmap实现的一个高实时性、高性能key-value持久化存储组件。
Stars: ✭ 163
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
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
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
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
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
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
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].