diff options
author | Valery Piashchynski <[email protected]> | 2021-06-22 15:20:08 +0300 |
---|---|---|
committer | Valery Piashchynski <[email protected]> | 2021-06-22 15:20:08 +0300 |
commit | 5627146e45afbb8f6566862c60a42a0b0aad2d0a (patch) | |
tree | 731e4157c3c09dabab60bd2c78910facf23fce75 /common/kv/interface.go | |
parent | 1a2a1f4735e40675abf6cd9767c99374359ec2bb (diff) |
- Move common interfaces and structures to the 'common' folder
- Update tests
Signed-off-by: Valery Piashchynski <[email protected]>
Diffstat (limited to 'common/kv/interface.go')
-rw-r--r-- | common/kv/interface.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/common/kv/interface.go b/common/kv/interface.go new file mode 100644 index 00000000..ffdbbe62 --- /dev/null +++ b/common/kv/interface.go @@ -0,0 +1,36 @@ +package kv + +import kvv1 "github.com/spiral/roadrunner/v2/proto/kv/v1beta" + +// Storage represents single abstract storage. +type Storage interface { + // Has checks if value exists. + Has(keys ...string) (map[string]bool, error) + + // Get loads value content into a byte slice. + Get(key string) ([]byte, error) + + // MGet loads content of multiple values + // Returns the map with existing keys and associated values + MGet(keys ...string) (map[string][]byte, error) + + // Set used to upload item to KV with TTL + // 0 value in TTL means no TTL + Set(items ...*kvv1.Item) error + + // MExpire sets the TTL for multiply keys + MExpire(items ...*kvv1.Item) error + + // TTL return the rest time to live for provided keys + // Not supported for the memcached and boltdb + TTL(keys ...string) (map[string]string, error) + + // Delete one or multiple keys. + Delete(keys ...string) error +} + +// Constructor provides storage based on the config +type Constructor interface { + // KVConstruct provides Storage based on the config key + KVConstruct(key string) (Storage, error) +} |