redis persistence adapter for polyclay, the schema-enforcing document mapper
A redis persistence adapter for Polyclay.
For the redis adapter, specify host & port of your redis server. The
dbname option is used to namespace keys; it defaults to the plural value of the model class. The redis adapter will store models in hash keys of the form dbname:key. It will also use a set at key dbname:ids to track model ids.
var polyclay = require'polyclay'RedisAdapter = require'polyclay-redis';var RedisModelFunc = polyclayModelbuildClassproperties:name: 'string'description: 'string'singular: 'widget'plural: 'widgets';polyclaypersistWidget;polyclaypersistRedisModelFunc 'name';var options =host: 'localhost'port: 6379;RedisModelFuncsetStorageoptions RedisAdapter;
The redis client is available at obj.adapter.redis. The db name falls back to the model plural if you don't include it. The dbname is used to namespace model keys.
If you would like your models to persist only for a limited time in redis, set the
ephemeral field in the options object to true.
var options =host: 'localhost'port: 6379ephemeral: true;RedisModelFuncsetStorageoptions RedisAdapter;
The adapter will not track model ids for ephemeral objects, so RedisModelFunc.all() will always respond with an empty list. However, the
save() function attempts to set a time to live for an object.
If the model has a
ttl field, the adapter uses that to set the redis TTL on an object when it is updated or saved.
Similarly, if an object has an
expire_at, the adapter sets the redis key to EXPIRE_AT the given timestamp.
If you do not set the
ephemeral option, ttl and expire_at properties will be not be treated specially.