2.0 KiB
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>"
}