Cache¶
Vapor's CacheProtocol
allows you to store and fetch items from a cache using optional expiration dates.
By default, the Droplet's cache is set to MemoryCache
. See the various providers below.
Store¶
Storing data into the cache is straightforward.
try drop.cache.set("hello", "world")
Expiration¶
When storing data, you can also supply an expiration date.
try drop.cache.set("ephemeral", 42, expiration: Date(timeIntervalSinceNow: 30))
In the above example, the supplied key value pair will expire after 30 seconds.
Fetch¶
You can retreive data from the cache using the .get()
method.
try drop.cache.get("hello") // "world"
Delete¶
Keys can be deleted from the cache using the .delete()
method.
try drop.cache.delete("hello")
Providers¶
Here is a list of official cache providers. You can search GitHub for additional packages.
Type | Key | Description | Package | Class |
---|---|---|---|---|
Memory | memory | In-memory cache. Not persisted. | Vapor | MemoryCache |
Fluent | fluent | Uses Fluent database. | Fluent Provider | FluentCache |
Redis | redis | Uses Redis database. | RedisProvider | RedisCache |
How to Use¶
To use a different cache provider besides the default MemoryCache
, make sure you have added the provider to your Package.
import Vapor import <package>Provider let config = try Config() try config.addProvider(<package>Provider.Provider.self) let drop = try Droplet(config) ...
Then change the Droplet's configuration file.
Config/droplet.json
{ "cache": "<key>" }