IRedisTransaction

IRedisTransaction

mythz edited this page on 8 Feb 2011 ·  2 revisions

The [RedisTransactions] interface implemented by ServiceStack's C# Redis Client.

Redis transactions

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.

Usage

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].

Details

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();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值