webmozart / key-value-store
A key-value store API with implementations for different backends.
Installs: 363 002
Dependents: 12
Suggesters: 4
Security: 0
Stars: 124
Watchers: 12
Forks: 14
Open Issues: 6
Requires
- php: ^5.3.3|^7.0
- webmozart/assert: ^1.0
Requires (Dev)
- basho/riak: ^1.4
- doctrine/cache: ^1.4
- doctrine/dbal: ^2.4
- mongodb/mongodb: ^1.0
- phpunit/phpunit: ^4.6
- predis/predis: ^1.0
- sebastian/version: ^1.0.1
- symfony/filesystem: ^2.5
- webmozart/json: ^1.1.1
Suggests
- basho/riak: to enable the RiakStore
- doctrine/cache: to enable the CachedStore
- doctrine/dbal: to enable the DbalStore
- mongodb/mongodb: to enable the MongoDbStore
- predis/predis: to enable the PredisStore
- webmozart/json: to enable the JsonFileStore
This package is auto-updated.
Last update: 2024-11-08 00:21:53 UTC
README
Latest release: 1.0.0
A key-value store API with implementations for different backends.
All contained key-value stores implement the interface KeyValueStore
. The
following stores are currently supported:
The interface CountableStore
is supported by the following classes:
The interface SortableStore
is supported by the following classes:
The decorator CachingDecorator
exists for caching another store instance
in a Doctrine cache.
FAQ
Why not use Doctrine Cache?
Caching is not key-value storage. When you use a cache, you accept that keys may disappear for various reasons:
- Keys may expire.
- Keys may be overwritten when the cache is full.
- Keys may be lost after shutdowns.
- ...
In another word, caches are volatile. This is not a problem, since the cached data is usually stored safely somewhere else. The point of a cache is to provide high-performance access to frequently needed data.
Key-value stores, on the other hand, are persistent. When you write a key to a key-value store, you expect it to be there until you delete it. It would be a disaster if data would silently disappear from a key-value store (or any other kind of database).
Hence the two libraries fulfill two very different purposes, even if their interfaces and implementations are often similar.
The CachingDecorator
actually uses a Doctrine Cache object to cache the data
of a persistent KeyValueStore
.
Authors
Installation
Use Composer to install the package:
$ composer require webmozart/key-value-store
Contribute
Contributions to the package are always welcome!
- Report any bugs or issues you find on the issue tracker.
- You can grab the source code at the package's Git repository.
Support
If you are having problems, send a mail to bschussek@gmail.com or shout out to @webmozart on Twitter.
License
All contents of this package are licensed under the MIT license.