Redis是一个非常高效的基于内存的NOSQL数据库,它提供非常高效的数据读写效能.在实际应用中往往是带宽和CLIENT库读写损耗过高导致无法更好地发挥出Redis更出色的能力.下面结合一些redis本身的特性和一些client操作上的改变来提高整个redis操作的交通.         上图是反映平常操作redis的情况,每个线程都独立的发起相应连接对redis的网络读写.虽然我们可以通过批操作的方式来把当前多个操作合并成一个,但这种 ...
      最近关注了一下ssdb,它的特点是基于文件存储系统所以它支撑量大的数据而不因为内存的限制受取约束.从官网的测试报告来看其性能也非常出色和redis相当,因此可以使用它来代替redis来进行k-v数据业务的处理.想法总是美好的,不过现实中就可能带点骨感.     幸好ssdb是兼容redis的部份协议,所以直接用redis client库就可以进行一个压力测试.以于针对Redis和ssdb的几个读操进行一个简单的性能测试对比,这个测试不是直接在本机调用Redis和ssdb. 而是通过一个程序在别的服务器上调用.测试指令(ge ...
     以下是通过Beetle.Redis组件操作Redis完成一个简单的订单查询功能。 配置 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="redisClientSection" type="Beetle.Redis.RedisClientSection, Beetle.Redis, Version=1.0.0.0, Culture=neutral, P ...
     Redis的当前数据存储在内存中,由于内存并不象硬盘一样有着很大的空间,对于服务器来说一般只会提供16G或32G内存。所以让Redis使用这些内存存储更多的数据是比较重要的。在使用redis的samples中一般都是使用string,而对象则用json方式来存储。但显然json所占用的空间是比较大的,在实际业务中一般对象成员都定义得比较长,而这些往往占用着很多空间;还有就是json对于数字的存储也是以字符方式表过,无法象二进制存储那样节省空间。     其实在对象写入redis的时候可以采用一些更节省空间对象序列化方式,这里 ...
由于前段时间在使用ServiceStack.Redis感觉不怎么方便和其代码实现也不理想所以就产生编写一个Redis .Net Client的想法(毕竟自己动手丰衣足食啊).实现的目的就是可以更简单了操作Redis并提供更多的数据处理方式如:String,json和Protobuf等。在操作Redis其实是通过TCP等方式来处理,所以它和其他网络服务一样有一个交互协议;Redis的交互协议比较怪异,第一次看感觉制定这协议很不合理……不过理解下来协议总体来说还是比较简单。 Redis的通讯协议可以说大集汇了……消息头标识,消息行还有就行里可能还有个数据块大小描述.首先R ...