- 博客(19)
- 资源 (12)
- 收藏
- 关注

原创 Redis可视化工具Web Redis Manager
一、简介 最近因为工作需要,使用了一些单机版Redis的界面化管理工具,使用过程中那惨痛的体验真的只有用过的人才能体会;为此本人和小伙伴准备动手一个Redis可视化工具,但是因为小伙伴最近工作比较忙,搞了一大半没有时间继续(会有后续,界面不敢说,使用体验上面肯定要比现有的好);本人对wpf不是很熟,再想到很久之前的web迅雷,就想动手实现一个web版的Redis的界面化管理工具;目前这个工具...
2018-08-11 17:59:12
3204

原创 自行实现比dotcore/dotnet更方便更高性能的对象二进制序列化
二进制序列化可以方便快捷的将对象进行持久化或者网络传输,并且体积小、性能高,应用面甚至还要高于json的序列化;开始之前,先来看看dotcore/dotne自带的二进制序列化:C#中对象序列化和反序列化一般是通过BinaryFormatter类来实现的二进制序列化、反序列化的。 BinaryFormatter序列化:1 System.Runtime.Serializa...
2018-06-23 16:13:32
1241

原创 自行实现 dotnet core rpc
前言小李:“胖子,上头叫你对接我的数据好了没有?”胖子:“那是你的事,你都不提供数据源,我咋接?”小李:“你想要什么样的数据源?”胖子:“我想要一个调用简单点的!”小李:“我这个数据源是在linux平台使用docket封装发布的,webapi的怎么样?”胖子:“也行,这项目工期快用完了,你得提供api封装sdk,另外我这边对性能有要求的!”小李:“webapi多好,基于json各个平台都能对接,性...
2018-05-27 20:34:30
979

原创 自已动手做高性能消息队列
前言 本人觉得码农的技术提升应该是从how to do到why do,而项目或产品都是从why do到how to do,所以呢下面先从大的方面介绍一下消息队列。 消息队列是分布式高并发面目中必不可少的一部分,随着互联网、云计算、大数据的使用,消息队列的应用越来越多,消息队列在系统的可伸缩性、稳定性、提升吞吐量等方面有着显著的作用;它主要的作用一般如下: 1...
2018-05-12 20:35:52
515

原创 自行实现Redis Client
引言 最近工作上有需要使用redis,于是便心血来潮打算自己写一个C#客户端。经过几天的努力,目前该客户端已经基本成型,下面简单介绍一下。通信协议 要想自行实现redisClient,则必须先要了解Redis的socket能信协议。新版统一请求协议在 Redis 1.2 版本中引入, 并最终在 Redis 2.0 版本成为 Redis 服务器通信的标准方式。在这个协议中, 所有发送至 Redi...
2018-04-16 23:18:06
514

原创 自行实现高性能MVC WebAPI
wcf虽然功能多、扩展性强但是也面临配置忒多,而且restful的功能相当怪异,并且目前没法移植。asp.net core虽然支持webapi,但是功能也相对繁多、配置复杂。就没有一个能让码农们安安心心的写webapi,无需考虑性能、配置、甚至根据问题场景自行设计、改造等问题的方案么?当然不是,特别是在dnc2.0已经相当强大的此时,完全可以自行设计一套简洁、高效的webapi框架!说到自行写...
2018-04-16 23:09:58
764
原创 GFF高仿QQ客户端及服务器
一、GFF简介GFF是仿QQ界面,通信基于SAEA.MessageSocket、SAEA.Http、SAEA.MVC实现包含客户端和服务器的程序,源码完全公开,项目源码地址:https://github.com/yswenli/GFF ,大家可以去我的github了解,欢迎follow,star与fork。GFF消息采用高性能基于IOCP模型的tcp实现,文件采用http实现,代码简洁,一...
2018-11-24 12:03:35
1381
原创 消息队列四
消息队列四数据持久化 Kafka大量依赖文件系统去存储和缓存消息。对于硬盘有个传统的观念是硬盘总是很慢,这使很多人怀疑基于文件系统的架构能否提供优异的性能。实际上硬盘的快慢完全取决于使用它的方式。设计良好的硬盘架构可以和内存一样快。在6块7200转的SATA RAID-5磁盘阵列的线性写速度差不多是600MB/s,但是随即写的速度却是100k/s,差了差不多6000倍。现代的操作系统都对次做了大量...
2018-04-21 17:40:56
161
原创 C# 输入法
虽说输入法不是什么新事物,各种语言版本都有,不过在C#不常见;这就会给人一种误会:C#不能做!其实C#能不能做呢,答案是肯定的——三种方式都行:IMM、TSF以及外挂式。IMM这种就是调windows的一些底层api,不过在新版本的windows中基本上已经不能用了,属于一种过时的操作方式。TSF是微软推荐的一种新方式,不过相对C#资料太少;线上主要的一些都是针对C++的版本资料,当然可以...
2018-04-17 16:39:20
859
原创 消息队列三
消息队列三Kafka简介Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:以时间复杂度为O(1)的方式提供消息持久化能力,并保证即使对TB级以上数据也能保证常数时间的访问性能高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输支持Kafka Server间的消息分区,及分布式消息消费,同时保证每个partition内的消息顺序传输同时支持离线数据处理和实...
2018-03-24 17:40:19
178
原创 消息队列二
消息队列二常用Message Queue对比RabbitMQRabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发。同时实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。对路由,负载均衡或者数据持久化都有很好的支持。RedisRedis是一个基于Key-Valu...
2018-03-24 17:39:41
122
原创 消息队列一
消息队列一为什么要用Message Queue解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束冗余 有时在处理数据的时候处理过程会失败。除非数据被持久化,否则将永远丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这...
2018-03-24 17:39:12
140
原创 redis成长之路——(七)
redis成长之路——(七)扩展性封装虽说现在StackExchange.Redis免费,万一到时候和servicestack.redis一样要收费呢,所以先留一口,后续的可以再处理实例代码点击这里查看 附上redis相关配置 一、redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no2. 当...
2018-03-24 17:38:05
281
原创 redis成长之路——(六)
redis成长之路——(六)redis配置为了码农在代码上只关心业务以及代码上的统一性,wenli.drive.redis内部使用配置来完成那些不同的场景,也就是说随便填填配置就能适应不同的场景!当然配置多了码农也会受不了,所以配置里面很多都是默认项实例代码点击这里查看 redis成长之路——(一)redis成长之路——(二)redis成长之路——(三)redis成长之路——(四)redis成长...
2018-03-24 17:37:29
161
原创 redis成长之路——(五)
redis成长之路——(五)单例、哨兵、Clusterredis应用广泛,主要体现于实际场景的可用化,但是对于码农来说初步入手很多理念难以理解;码农的想法就是:为什么我要管那么多,我只想用,能用就行!所以必须将三个场景透明化。SERedisHelper就是将这些场景合并,让码农只关心业务的关键。实例代码点击这里查看 redis成长之路——(一)redis成长之路——(二)redis成长之路——(三...
2018-03-24 17:37:00
152
原创 redis成长之路——(四)
redis成长之路——(四)加强redis连接的连接池虽然StackExchange.Redis针对连接已经做了很多工作,不过在实际应用场景中还是不够的,比如多实例的vip就会导致只能连到其中一个实例上等;本实例中的连接池只能算是一个简单的复用封装,虽说简单但能用至上。实例代码点击这里查看 redis成长之路——(一)redis成长之路——(二)redis成长之路——(三)redis成长之路——(...
2018-03-24 17:36:27
128
原创 redis成长之路——(三)
redis成长之路——(三)redis连接封装StackExchange.Redis中有一些常功能是不在database对中,例如发布订阅、获取全部key(本代码中已封装到operation中了)等,而且StackExchange.Redis中使用一种多路复用器概念来建立连接对于使用者来说也是没有必要了解的;所以将连接封装起来,让用户只关心业务才是对的。SERedisConnection源代码可以...
2018-03-24 17:35:55
144
原创 redis成长之路——(二)
redis成长之路——(二)redis操作封装针对这些常用结构,StackExchange.Redis已经做了一些封装,不过在实际应用场景中还必须添加一些功能,例如重试等所以对一些常功能做了一些自行封装SERedisOperation.cs redis成长之路——(一)redis成长之路——(二)redis成长之路——(三)redis成长之路——(四)redis成长之路——(五)redis成长之路...
2018-03-24 17:35:18
141
原创 redis成长之路——(一)
redis成长之路——(一)为什么使用redisRedis适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就会有疑问,似乎Redis更像一个加强版的Memcached.上面描述说的过于泛了,很多初次接触的码农可能不明白怎么回事;其实简单来说:如果业务中需要高性能、分布式、集群等场景...
2018-03-24 17:34:03
408
.net DLLImport工具
2017-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人