Antarmuka Transaksi Redis diimplementasikan oleh C# Redis Client ServiceStack.
Introduction #
Antarmuka transaksi Redis menyediakan kelebihan yang berguna yang memungkinkan Anda mengantre operasi IRedisTypedClient apa pun dalam satu transaksi. API menyediakan dukungan untuk panggilan balik sehingga Anda juga memiliki akses ke nilai pengembalian apa pun yang dikembalikan sebagai bagian dari transaksi juga.
Penggunaan #
Di bawah ini adalah contoh sederhana yang menunjukkan cara mengakses, menggunakan, dan melakukan transaksi.
var typedClient = Redis.GetTypedClient<MyPocoType>();
using (var trans = typedClient.CreateTransaction())
{
trans.QueueCommand(r => r.Set("nosqldbs", new MyPocoType {Id = 1, Name = "Redis"));
trans.Commit();
}
Untuk transaksi yang beroperasi pada nilai string, lihat IRedisTransaction.
Detail #
public interface IRedisTypedTransaction<T>
: IDisposable
{
void QueueCommand(Action<IRedisTypedClient<T>> command);
void QueueCommand(Action<IRedisTypedClient<T>> command, Action onSuccessCallback);
void QueueCommand(Action<IRedisTypedClient<T>> command, Action onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisTypedClient<T>, int> command);
void QueueCommand(Func<IRedisTypedClient<T>, int> command, Action<int> onSuccessCallback);
void QueueCommand(Func<IRedisTypedClient<T>, int> command, Action<int> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisTypedClient<T>, bool> command);
void QueueCommand(Func<IRedisTypedClient<T>, bool> command, Action<bool> onSuccessCallback);
void QueueCommand(Func<IRedisTypedClient<T>, bool> command, Action<bool> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisTypedClient<T>, double> command);
void QueueCommand(Func<IRedisTypedClient<T>, double> command, Action<double> onSuccessCallback);
void QueueCommand(Func<IRedisTypedClient<T>, double> command, Action<double> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisTypedClient<T>, byte[]> command);
void QueueCommand(Func<IRedisTypedClient<T>, byte[]> command, Action<byte[]> onSuccessCallback);
void QueueCommand(Func<IRedisTypedClient<T>, byte[]> command, Action<byte[]> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisTypedClient<T>, string> command);
void QueueCommand(Func<IRedisTypedClient<T>, string> command, Action<string> onSuccessCallback);
void QueueCommand(Func<IRedisTypedClient<T>, string> command, Action<string> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisTypedClient<T>, T> command);
void QueueCommand(Func<IRedisTypedClient<T>, T> command, Action<T> onSuccessCallback);
void QueueCommand(Func<IRedisTypedClient<T>, T> command, Action<T> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisTypedClient<T>, List<string>> command);
void QueueCommand(Func<IRedisTypedClient<T>, List<string>> command, Action<List<string>> onSuccessCallback);
void QueueCommand(Func<IRedisTypedClient<T>, List<string>> command, Action<List<string>> onSuccessCallback, Action<Exception> onErrorCallback);
void QueueCommand(Func<IRedisTypedClient<T>, List<T>> command);
void QueueCommand(Func<IRedisTypedClient<T>, List<T>> command, Action<List<T>> onSuccessCallback);
void QueueCommand(Func<IRedisTypedClient<T>, List<T>> command, Action<List<T>> onSuccessCallback, Action<Exception> onErrorCallback);
void Commit();
void Rollback();
}