ItGo.me - 专注IT技术分享

首页 > Redis > ServiceStack.Redis 数据操作

ServiceStack.Redis 数据操作

时间:2016-08-28来源:网友分享 点击:

简单的字符串类型数据写. Poco在redis中会被序列化成Json字符串.

 1    using (var redis = new RedisClient(connString))2     {3       if (redis.Db != 7)4          ((RedisClient)redis).ChangeDb(7);56       var client = redis.As<Poco>();7        var list = new List<Poco>();89        foreach(var key in keys)10        {11            list.Add(client.GetValue(key.ToString(CultureInfo.InvariantCulture)));12        }1314       return list;15     }

Redis以快著称, 以上写法不是最快的.因为上边循环中每次都是进行了一个独立的Redis访问, 即进行了一次Query, 返回了一个Response

[req1][====waiting=====][resp1][req2][====waiting=====][resp2]

更快的写法是使用pipeline mode. Pipeline mode不会等待上一次Query的结果, 会立刻发送下一个Query. 每当有一条Response返回时, 它会对Response进行对应的Callback处理.

以下是代码实现:

此段代码摘自ServiceStack.Redis的测试类

 1     [Test]2     public void Can_call_single_operation_with_callback_3_Times_in_pipeline()3     {4         var results = new List<long>();5         Assert.That(Redis.GetValue(Key), Is.Null);6         using (var pipeline = Redis.CreatePipeline())7         {8             pipeline.QueueCommand(r => r.IncrementValue(Key), results.Add);9             pipeline.QueueCommand(r => r.IncrementValue(Key), results.Add);10             pipeline.QueueCommand(r => r.IncrementValue(Key), results.Add);11             pipeline.Flush();12         }1314         Assert.That(Redis.GetValue(Key), Is.EqualTo("3"));15         Assert.That(results, Is.EquivalentTo(new List<long> { 1, 2, 3 }));16     }

ServiceStack.Redis 数据操作

ServiceStack.Redis 数据操作  讨论


php+redis缓存类

01php+redis缓存类 ?phpclass redisCache {/*** $host : redis服务器ip* $port : redis服务器端口* $lifetime : 缓存文件有效期,单位为秒* $cacheid : 缓存文件路径,包含文件名*/private $host;private $port;private $lifetime;privat...

Pushlet:一个开源的 Comet 框架

Pushlet是通过改进 框架,添加支持多字符集和通过redis做后端数据库来做集群.Pushlet 使用了观察者模型:客户端发送请求,订阅感兴趣的事件;服务器端为每个客户端分配一个会话 ID 作为标记,...

通过shell和redis来实现集群业务中日志的实时收集分析

在统计项目中,最难实施的就是日志数据的收集。日志分布在全国各个机房,而且数据量比较大,像rsync+inotify这种方式显然不能满足快速日志同步的要求。 当然大家也可以用fluentd和flume采集日...

简单的字符串类型数据写. Poco在redis中会被序列化成Json字符串. 1 using (var redis = new RedisClient(connString))2 {3 if (redis.Db != 7)4 ((RedisClient)redis).ChangeDb(7);56 var client = redis.AsPoco();7 var list = new ListPoco();8
------分隔线----------------------------