摘要: private int IsDigitOrNumber(string str) { if(System.Text.RegularExpressions.Regex.IsMatch(str,@"(?i)^[0-9a-z]+$")) return 1; else return 0; } 阅读全文
posted @ 2019-07-11 15:02 Ocean乌龟 阅读(89) 评论(0) 推荐(0) 编辑
摘要: C#代码要先添加两个引用。COM的microsoft office XX Object Library和microsoft office interop powerpoint Microsoft.Office.Interop.PowerPoint.Application pptApplication 阅读全文
posted @ 2019-07-11 14:44 Ocean乌龟 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库再查询一遍,然后返回空(相当于进行了两次无用的查询)。这样请求就绕过缓存直接查数据库,这也是经常提的缓存命中率问题。 缓存穿透解决方案: (1)采用布隆过滤器,将所有可能存在的数据 阅读全文
posted @ 2019-04-26 09:40 Ocean乌龟 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 缓存击穿问题 缓存击穿表好恶意用户模式请求很多缓存中不存在的数据,由于缓存中都没有,导致这些请求短时间内直接落在了数据库上,导致数据库异常。这个我们在实际项目就遇到了,有些抢购活动,秒杀活动的接口API被大量恶意用户刷,导致短时间内数据库超时了,好在数据库是读写分离,同时也有进行接口限流,hold住 阅读全文
posted @ 2019-04-13 10:49 Ocean乌龟 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 缓存雪崩问题 缓存在同一时间内大量键过期(失效),接着来的一大波请求瞬间都落在了数据库中导致连接异常。 解决方案 1.加锁排队 2.建立备份缓存,缓存A和缓存B,A设置超时时间,B不设置超时时间,先从A读缓存,A没有读B,并且更新A缓存和B缓存; 3.设置缓存超时时间的时候加上一个随机的时间长度,比 阅读全文
posted @ 2019-04-13 09:32 Ocean乌龟 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 工厂模式包含三种,简单工厂模式,工厂方法模式,抽象工厂模式。 这三种都是解决了一个问题,那就是对象的创建问题。他们的职责就是将对象的创建和对象的使用分离开来。 当我们创建对象的时候,总是会new一个对象,有错么? 技术上,new没有错,毕竟是C#的基础部分,真正的犯人是我们的老朋友“改变”。 以及他 阅读全文
posted @ 2019-04-12 11:55 Ocean乌龟 阅读(562) 评论(0) 推荐(0) 编辑