Redis key-value store¶
A resource that provides access to a Redis-based key-value store.
- class vxsandbox.resources.kv.RedisResource(name, app_worker, config)[source]¶
Resource that provides access to a simple key-value store.
Configuration options:
Parameters: - redis_manager (dict) – Redis manager configuration options.
- keys_per_user_soft (int) – Maximum number of keys each user may make use of in redis before usage warnings are logged. (default: 80% of hard limit).
- keys_per_user_hard (int) – Maximum number of keys each user may make use of in redis (default: 100). Falls back to keys_per_user.
- keys_per_user (int) – Synonym for keys_per_user_hard. Deprecated.
- handle_delete(*args, **kwargs)[source]¶
Delete a key.
- Command fields:
- key: The key to delete.
- Reply fields:
- success: true if the operation was successful, otherwise false.
Example:
api.request( 'kv.delete', {key: 'foo'}, function(reply) { api.log_info('Value deleted: ' + reply.success); } );
- handle_get(*args, **kwargs)[source]¶
Retrieve the value of a key.
- Command fields:
- key: The key whose value should be retrieved.
- Reply fields:
- success: true if the operation was successful, otherwise false.
- value: The value retrieved.
Example:
api.request( 'kv.get', {key: 'foo'}, function(reply) { api.log_info( 'Value retrieved: ' + JSON.stringify(reply.value)); } );
- handle_incr(*args, **kwargs)[source]¶
Atomically increment the value of an integer key.
The current value of the key must be an integer. If the key does not exist, it is set to zero.
- Command fields:
- key: The key to delete.
- amount: The integer amount to increment the key by. Defaults to 1.
- Reply fields:
- success: true if the operation was successful, otherwise false.
- value: The new value of the key.
Example:
api.request( 'kv.incr', {key: 'foo', amount: 3}, function(reply) { api.log_info('New value: ' + reply.value); } );
- handle_set(*args, **kwargs)[source]¶
Set the value of a key.
- Command fields:
- key: The key whose value should be set.
- value: The value to store. May be any JSON serializable object.
- seconds: Lifetime of the key in seconds. The default null indicates that the key should not expire.
- Reply fields:
- success: true if the operation was successful, otherwise false.
Example:
api.request( 'kv.set', {key: 'foo', value: {x: '42'}}, function(reply) { api.log_info('Value store: ' + reply.success); });