自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (4)
  • 收藏
  • 关注

原创 面试官扎心一问:防止重复请求提交,有什么方案?

背景在平常开发中,我们经常会面对防止重复请求的问题。当服务端对于请求的响应涉及数据的修改,或状态的变更时,可能会造成极大的危害。重复请求的后果在交易系统、售后维权,以及支付系统中尤其严重。但是很多时候,都是指望着前端来限制,比如提交之后,按钮diseabled之类的,其实这些都是不靠谱的。关键时候还是需要后端来校验。解决方式1、基于缓存数据状态的验证Redis存储查询轻量快速。在request进来的时候,可以先记录在缓存中。后续进来的request每次进行验证。整个流程处理完成,清除缓存。

2021-02-28 19:00:40 561

原创 在Windows上安装Docker

背景Windows的Docker桌面是Microsoft Windows的Docker的社区版本。您可以从Docker Hub下载适用于Windows的Docker桌面。该页面包含有关在Windows 10 Pro,Enterprise和Education上安装Docker Desktop的信息。如果要查找有关在Windows 10 Home上安装Docker桌面的信息.下载地址:https://hub.docker.com/editions/community/docker-ce-deskt.

2021-02-27 17:33:02 216

原创 上班摸鱼神器—VSCode 里也可以看股票 & 基金实时数据

1、简介无意中发现了个开源项目,推荐给大家。韭菜盒子——VSCode 里也可以看股票 & 基金实时数据,做最好用的投资插件。开源地址:https://github.com/LeekHub/leek-fund投资其实就是一次心态修炼,稳住心态长期投资都会有收益的!!2、功能特性本插件具有以下特点: 基金实时涨跌,实时数据,支持海外基展示 股票实时涨跌,支持 A 股、港股、美股 左侧菜单面板 底部状态栏信息 手动刷新 开

2021-02-26 09:06:35 1580

原创 面试官:Redis 内存数据满了,会宕机吗?

背景Redis 数据库内存数据满了,会宕机吗?答案是:不会让它出现存满的情况,在使用Redis的时候我们要配置Redis能使用的最大的内存大小,存到一定容量的时候还有Redis的内存淘汰策略呢,还有LRU算法进行淘汰,等等。Redis的内存淘汰策略1、Redis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。通过配置文件配置通过在Redis安装目录下面的redis.co

2021-02-25 09:12:03 211

原创 RabbitMQ 简介

概述RabbitMQ 是基于 AMQP 实现的一个开源消息组件,主要用于在分布式系统中存储转发消息,由因高性能、高可用以及高扩展而出名的 Erlang 语言写成。特点高可靠:RabbitMQ 提供了多种多样的特性让你在可靠性和性能之间做出权衡,包括持久化、发送应答、发布确认以及高可用性。高可用队列:支持跨机器集群,支持队列安全镜像备份,消息的生产者与消费者不论哪一方出现问题,均不会影响消息的正常发出与接收。灵活的路由:所有的消息都会通过路由器转发到各个消息队列中,RabbitMQ 内建了

2021-02-24 08:57:02 297

原创 93.7%的程序员!竟然都不知道Redis为什么默认16个数据库?

背景在实际项目中redis常被应用于做缓存,分布式锁/消息队列等。但是在搭建配置好redis服务器后很多朋友应该会发现和有这样的疑问,为什么redis默认建立了16个数据库,16个数据库的由来redis是一个字典结构的存储服务器,一个redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与在一个关系数据库实例中可以创建多个数据库类似,所有可以将其中的每个字典都理解成一个独立的数据库。redis默认支持16个数据库,可以通过调整redis的配置文件redis/redi

2021-02-23 09:10:25 409 2

原创 对象到对象映射-AutoMapper

概述AutoMapper 是一个对象-对象映射器,可以将一个对象映射到另一个对象。用来解决一个看似复杂的问题,这种类型的代码编写起来相当枯燥乏味,官网地址:http://automapper.org/官方文档:https://docs.automapper.org/en/latest/入门AutoMapper支持使用静态服务位置构造“自定义值解析器”,“自定义类型转换器”和“值转换器”的功能:var configuration = new MapperConfig.

2021-02-22 10:18:58 282

原创 你可能不知道的按位与、或运算技巧

背景最近在园子里看到了这篇文章,看完这篇会有意外收获:C#枚举高级战术https://mp.weixin.qq.com/s/yipaL6Acil-uxq_bDDgdyg想起了很久之前的自己的一篇总结,特地找出来说说概念在工作中遇到按位或组合权限串。一直不是特别明白。今天终于花了半个下午的时间搞明白其中的道理。首先每一个权限数都是2的N次方数如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改...

2021-02-21 10:03:56 310

原创 ASP.NET Core 中的配置

背景ASP.NET Core 提供了一个灵活可扩展,基于键值的配置系统. 但是配置系统独立于ASP.NET Core是Microsoft.Extensions 类库的部分. 它可以用于任何类型的应用程序。1、以键-值对的形式读取配置appsettings.json 文件:{ "Position": { "Title": "编辑器", "Name": "Joe Smith" }, "MyKey": "My appsettings..

2021-02-19 08:45:39 152

原创 日志框架NLog之将日志发送到邮件

背景NLog可以将日志输出到不同的媒介上,邮件是其中一个,通过邮件可以让我们第一时间收到信息。使用SMTP协议通过电子邮件发送日志消息。与FallbackGroup Target很好地结合在一起,以创建具有多个SMTP主机的后备。配置语法<targets> <target xsi:type="Mail" name="String" header="Layout" footer="Layout" .

2021-02-18 21:58:39 559

原创 python才能做爬虫,No,C#也可以!

介绍网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。背景最近在玩爬虫,但是发现基本都是python的资料居多。如今代码圈很多做网络爬虫的例子,这里给大家分享的是如何用C#做网络爬虫。注意这里的分享只是分享思路和遇到的一些问题,并不是一整个例子,因为如果要讲解一整个例子的话,牵扯的东西太多。文章列表1、用C#+Selenium+Chrom

2021-02-09 15:55:50 259

原创 Web API实现微信公众平台开发-接收数据Post

介绍当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息。其中,某些事件推送在发生后,是允许开发者回复用户的,某些则不允许。代码实现1、接收参数。var postModel = GetPostModel(request);2、验证签名。if (!CheckSignature.Check

2021-02-09 08:52:27 475

原创 聊聊如何使用单例模式

介绍单例模式,顾名思义就是只有一个实例,并且她自己负责创建自己的对象,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。下面我们来看下有哪几种实现方式吧。实现方式1、使用lock ,保证方法只有一个线程可以进入。/// <summary> /// 单例类 /// </summary> public class Singleton { private Singleton() {

2021-02-08 09:01:59 286

原创 hangfire 实现已完成的job设置过期,防止数据无限增长

背景后台作业hangfire用来在后台里执行应用里的一些任务,后台作业是持久性的这意味着即使你的应用程序崩溃了, 后台作业也会在稍后重试并执行。平常我们一般是将数据持久化到存储介质,比如redis。这时候就会带来一个问题,如何防止数据无限扩大,我们可以已完成的job设置过期,防止数据无限增长。解决方法1、定义SucceededStateExpireHandler ,继承IStateHandler。using Hangfire.States;using Hangfire.Storage;

2021-02-07 09:05:42 1322

原创 c#爬虫-1688官网自动登录

背景在1688官网里面有很多信息是需要登录才能看得到的,比如商家的联系电话等等。那么我们在抓取它的网页的时候,肯定是需要维持登录状态才能得到对应的内容。这里面就会涉及到自动登录的问题。登录地址https://login.1688.com/member/signin.htm自动登录方法1、找到对应的元素,账号、密码框。2、把账号、密码值带进去。 List<string> logininfolist = new List<string>();

2021-02-06 17:57:06 1654

原创 用gogs搭建属于自己的git服务器

背景我们都知道,像码云、GitHub就是一个免费托管开源代码的远程仓库。但是对于公司来说,既不想公开源代码,又舍不得给交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。下面介绍下使用gogs搭建属于自己的git服务器。官网:https://gogs.io/安装步骤1、下载git for windowshttps://github.com/git-for-windows/git/releases/download/v2.15.0.windows.1/Git-2.15.0-6

2021-02-05 09:18:20 394

原创 ASP.NET Core 中的配置

ASP.NET Core 提供了一个灵活可扩展,基于键值的配置系统. 但是配置系统独立于ASP.NET Core是Microsoft.Extensions 类库的部分. 它可以用于任何类型的应用程序1、以键-值对的形式读取配置appsettings.json 文件:{ "Position": { "Title": "编辑器", "Name": "Joe Smith" }, "MyKey": "My appsettings.json Val

2021-02-04 13:34:05 194

原创 使用Func<T, TResult> 委托实现API日志的记录

问题平常我们开发web api的时候,一般是需要记录api的输入输出信息,方便后续排查问题;那么我们一般怎么做的,一般是我们在一个公共地方的写个公共方法控制输入输出。这时候Func<T, TResult> 委托就派上用场。什么是FuncFunc<T, TResult>封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。使用Func<T, TResult> 委托表示一种能以参数形式传递的方法,而不用显式声明自定义委托。封装的方法必须与此委托定义.

2021-02-03 09:02:36 213 1

原创 使用缓存防击穿,解决微信”被动回复用户消息”重试回复问题

背景做微信公众号开发的时候,其中有个接收普通消息、接收事件推送 API。有这么条规则, ”微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-被动回复消息””。概括起来就2点1、就是说5s没响应,这个请求就会被放弃;2、会重新发起请求,具有幂等性;问题这样就会产生2个问题。1、假设我的方法就正好需要6s,那么即使返回结果也是没用的..

2021-02-02 10:16:12 323

原创 巧用Dictionary实现日志数据批量插入

背景最近再做一个需求,就是对站点的一些事件进行埋点,说白了就是记录用户的访问行为。那么这些数据怎么保存呢,人家点一下保存一下?显然不合适,肯定是需要批量保存,提高效率。问题窥探首先,我想到的是Dictionary,对于C#中的Dictionary类相信大家都不陌生,这是一个Collection(集合)类型,可以通过Key/Value(键值对的形式来存放数据;该类最大的优点就是它查找元素的时间复杂度接近O(1),实际项目中常被用来做一些数据的本地缓存,提升整体效率。Dictionary是非线程安全

2021-02-01 09:47:44 205

China2019.NET Conf.rar

2019.NET开发者峰会,2019 .NET China Conf:路一直都在,社区会更好 本次大会的所有PPT资料。

2020-10-27

ajax小例子

ajax 关于get 和post 的小例子

2012-01-02

silverlight制作的手机功能演示

silverlight制作的手机功能演示

2011-11-16

C#抽奖 源代码

C#抽奖 源代码, 自己写的 。供大家参考学习哦

2011-10-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除