This repository has been archived by the owner on Dec 24, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 873
IRedisTransaction
mythz edited this page Feb 8, 2011
·
2 revisions
The [RedisTransactions] interface implemented by ServiceStack's C# Redis Client.
Redis transaction interface provides useful overloads that let you Queue-up any [IRedisClient] operation within a single transaction. The API provides support for a callback so you also have access to any return values returned as part of the transaction as well.
Below is a simple example showing how to access, use and commit the transaction.
int callbackResult;
using (var trans = redis.CreateTransaction())
{
trans.QueueCommand(r => r.Increment("key"));
trans.QueueCommand(r => r.Increment("key"), i => callbackResult = i);
trans.Commit();
}
For a strongly-typed transaction that operates on complex POCO types see [IRedisTypedTransaction IRedisTypedTransaction].
public interface IRedisTransaction
: IDisposable
{
void QueueCommand(Action<IRedisClient> command);
void QueueCommand(Action<IRedisClient> command, Action onSuccessCallback);
void QueueCommand(Action<IRedisClient> command, Action onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisClient, int> command);
void QueueCommand(Func<IRedisClient, int> command, Action<int> onSuccessCallback);
void QueueCommand(Func<IRedisClient, int> command, Action<int> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisClient, bool> command);
void QueueCommand(Func<IRedisClient, bool> command, Action<bool> onSuccessCallback);
void QueueCommand(Func<IRedisClient, bool> command, Action<bool> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisClient, double> command);
void QueueCommand(Func<IRedisClient, double> command, Action<double> onSuccessCallback);
void QueueCommand(Func<IRedisClient, double> command, Action<double> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisClient, byte[]> command);
void QueueCommand(Func<IRedisClient, byte[]> command, Action<byte[]> onSuccessCallback);
void QueueCommand(Func<IRedisClient, byte[]> command, Action<byte[]> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisClient, string> command);
void QueueCommand(Func<IRedisClient, string> command, Action<string> onSuccessCallback);
void QueueCommand(Func<IRedisClient, string> command, Action<string> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisClient, List<string>> command);
void QueueCommand(Func<IRedisClient, List<string>> command, Action<List<string>> onSuccessCallback);
void QueueCommand(Func<IRedisClient, List<string>> command, Action<List<string>> onSuccessCallback, Action<Exception> onErrorCallback);
void Commit();
void Rollback();
}