In a first iteration we will only focus on strings. To make this explicit all nodes are suffixed as such. In a later iteration we can add a generic node set which works with all primitive types (T where T is unmanaged or string).
Event based nodes
PublishString - allows to send messages on a Redis channel.
SubscribeString - allows to receive messages of a Redis channel. Outputs an Observable<String>.
Persistent nodes
GetString (Blocking) - reads a string from given key. Throws if the key doesnt exist.
SetString (Blocking) - writes a string to a given key. Outputs Bool if successful.
GetString (Reactive) - reads a string from given key. Outputs an Observable<String>. If the key doesnt exist the exception will be pushed via the observable (OnError).
SetString (Reactive) - writes a string to a given key. Outputs an Observable<Bool>.
Reddis allows to read and write keys in a transactional manner. We decided to expose this via two new nodes
GetString (Transactional)
SetString (Transactional)
They place their work into a Redis transaction which gets executed in background before and after each vvvv frame.
Client side caching
The Reddis documentation also speaks quite a bit about client side caching. This would be relevant for the GetString nodes. However whether or not a key should be cached shouldn
t be decided in the moment one reads the key, but in general when "setting up" the key. So maybe it should be an option on the Redis node itself, taking a spread of keys which should be cached on client side. Also note that this feature still has to be researched by @kopffarben how it actually works in the StackExchange implementation.
HDE extension
An extension to easily run a local Redis dev server.
Node set
In a first iteration we will only focus on strings. To make this explicit all nodes are suffixed as such. In a later iteration we can add a generic node set which works with all primitive types (
T where T is unmanaged or string
).Event based nodes
PublishString
- allows to send messages on a Redis channel.SubscribeString
- allows to receive messages of a Redis channel. Outputs anObservable<String>
.Persistent nodes
GetString (Blocking)
- reads a string from given key. Throws if the key doesnt exist.SetString (Blocking)
- writes a string to a given key. OutputsBool
if successful.GetString (Reactive)
- reads a string from given key. Outputs anObservable<String>
. If the key doesnt exist the exception will be pushed via the observable (OnError).SetString (Reactive)
- writes a string to a given key. Outputs anObservable<Bool>
.Reddis allows to read and write keys in a transactional manner. We decided to expose this via two new nodes
GetString (Transactional)
SetString (Transactional)
They place their work into a Redis transaction which gets executed in background before and after each vvvv frame.
Client side caching
The Reddis documentation also speaks quite a bit about client side caching. This would be relevant for the
GetString
nodes. However whether or not a key should be cached shouldn t be decided in the moment one reads the key, but in general when "setting up" the key. So maybe it should be an option on theRedis
node itself, taking a spread of keys which should be cached on client side. Also note that this feature still has to be researched by @kopffarben how it actually works in the StackExchange implementation.HDE extension
An extension to easily run a local Redis dev server.