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.
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
.
Use Composer to install the package:
$ composer require webmozart/key-value-store
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.
If you are having problems, send a mail to bschussek@gmail.com or shout out to @webmozart on Twitter.
All contents of this package are licensed under the MIT license.