自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mango_love的专栏

习而简之,简而精之

  • 博客(13)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis高并发限流策略之漏斗限流算法

在双11活动当天凌晨,打折活动开始前多少名客户下单可以半折甚至是免单优惠,客户当然不会放过这个一年一次的机会,疯狂开始。这时候我们程序员小哥哥就苦了,稍一个不注意,服务器驾崩了,次日头条见。那么为了防止在当天凌晨压死服务器的并发,我们想到了一个很好的策略,一分钟搞不定的事情,我们可以两分钟搞定,至少保证我们的服务器不会瘫痪,就是说,假如我们的服务器并发量是1w左右,那么我们可以限制在9000的并发量,超过这个预警我们就严格限制请求访问量不能做越过这个警戒线,做到削峰或者说是平滑这个爆发点。很快我们程序员

2020-05-30 16:24:33 23508

原创 Redis如何实现刷抖音不重复-布隆过滤器(Bloom Filter)

刷抖音的时候是否曾想过,我们刷过的视频很难在重复刷到那么它到底是如何实现的呢?如果说我们每刷一个视频并且把视频id和用户的id组合成一条数据保存到数据库中每次推荐视频的时候都去数据检测是否已经刷过了,嗯,这样可以实现这个功能,但是存在多个问题,频繁操作数据表对数据库造成很大的负担,每次推荐视频时都得保存数据,人流量一多,数据库很快就扛不住。那么我们可否使用缓存redis中的set来实现呢?当然是可以的,redis4.0版本给我们提供了更加快捷更加节省空间的数据结构--布隆过滤器(Bloom Filt

2020-05-28 23:48:52 13280 5

原创 Redis站点流量统计HyperLogLog

在我们做站点流量统计的时候一般会统计页面UV(独立访客:unique visitor)和PV(即页面浏览量:page view),那么我们最常见的处理方式就是用户点击一次就插入一条数据到数据库,统计的时候通过查询表来达到统计流量的效果。那么我们如果是通过redis来处理,我们可以使用string类型然后自增计数即可达到统计PV,统计UV可以使用set,每个用户id是唯一的可以放到这个集合里,统计的时候只需要执行scard获取集合大小即可。这两种方式都是可以实现站点的流量统计,但是如果说当站点流量非常

2020-05-28 00:43:48 15467

原创 Redis快速扫描Scan

在平时我们维护线上Redis的时候需要从n个key里面找到某些特定规则的key,可能查看某些key可能清理某些不需要的key,可能我们第一印象就是keys这个指令,我们可以使用这个指令匹配我们想要的key,下面我们来试试。keys指令基本用法>msetname1aname2ana1meana2meaOK> keys name*1) "name"2) "name2"3) "name1"> keys na*me1) "name"2) "na1me"3)"na2me...

2020-05-26 23:23:19 8478

原创 Redis之GeoHash

在生活中我们有时候需要点外卖、骑共享单车等等,我们打开软件找到附近餐厅、离我最近的单车,那么他们是怎么快速定位到的呢?我们把地图看作一个二维平面,我们在某个点上然后找到附近10km内的所有餐厅,这时候我们知道求两点直接的距离是需要一个公式,且需要知道两点的x,y轴坐标才能计算出距离,通过计算出距离然后进行排列,那么我们就能过找到离我最近的一个餐厅了。那么这里我们考虑几个问题,我每次搜索的时候需要计算我离餐厅的距离,那么我们能不能把这个距离保存起来呢?如果我保存了,我下次在另一个地方那是不是还得重新计..

2020-05-26 00:29:11 11441

原创 Redis位图

上课签到时间到了,张三老师开始点名了,每点一名同学就新增加一条记录,我们数据库会把这条记录写到学生考勤表里,到学期末考核的时候汇总根据学生迟到次数计算总学分。假设一个班级50个学生,一天4课时,一个星期就要记录1000条记录,那么如果说我们根据学生的学号顺序记录学生签到信息,通过“0”和“1”来表示,“1”就代表学生签到,“0”代表学生迟到,那么我们一个星期只要保存20条数据即可。Redis也有这样的结构名叫位图,位图最小的单位是bit,每个bit是由0或1构成,我们的字符串就是由很多个bit数组组成的

2020-05-24 17:52:58 9863

原创 十大经典排序算法(动态演示+代码)

时间复杂度是指程序执行函数或方法的效率常用大写的O表示,比如执行一个循环我们记做O(n),执行一个加法运算或者执行一个if操作我们记为O(1)​。​时间、空间复杂度比较1 冒泡排序算法思想: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要

2020-05-23 09:51:22 4245

原创 Redis-集合(Set)基础

Redis集合包括Set(无序集合)和ZSet(有序集合),这里的Set实现相当于Java中的HashSet,它内部实现了一个特殊的字典,字典中所有的value都是一个值NULL。下面我们来熟悉下set的常用的命令Set>saddname hello(integer)1>saddnamehello#重复,不能插入(integer)0>saddnamei am ok(integer)3>smembers name"hello""i""am""ok">s...

2020-05-22 19:37:25 202

原创 Redis-字典(hash)基础

Redis的字典数据结构跟Java的HashMap一样,也是数组+链表结构,数组是hash的位置,hash碰撞的值保存到链表种。但是跟HashMap不同的是Redis字典存储的值都是字符串类型的,而HashMap存储的值是所有数据类型常见操作>hset user name mango(ingeter)1>hmset user age 18 gender "男" OK>hlen user (ingeter)3 >hget user name "mango"

2020-05-21 00:33:32 209

原创 Redis-字符串(string)基础

redis是以keyvalue的数据结构存储的,每个key都是唯一的,字符串是redis里面最简单的数据结构,它的内部其实是一个字符数组。redis里面的字符串是一个动态字符数组,有点类似Java里的arrayList,采用预分配冗余的方式来减少内存的频繁分配,内部为当前字符串分配的实际空间 capacity一般要高于实际字符串长度len。当字符串长度小于1MB时,扩容都是加倍现有的空间。如果字符串长度超过1MB,扩容时一次只会多扩1MB 的空间,字符串最大长度为 512MB。下面我们尝试常用的..

2020-05-19 21:06:51 198

原创 Redis-列表(List)基础

Redis的列表是一个双链结构,跟java里面的LinkedList一样,对于链表插入数据非常快时间复杂度为O(1),但是查询需要遍历这个链表时间复杂度为O(n),对于双链表来说既可以从头到尾遍历也可以从尾遍历的双向遍历,这个结构有点跟我们的队列和栈非常相似,该结构常用来做异步队列,将需要延后处理的任务结构体序列化成字符串,放入Redis列表,另一个线程从这个列表中轮询进行处理当然,我们的列表也提供这样的操作,下面我们来试试常见的的命令操作。队列(先进先出)列表是一个先进先出的数据结构,常用于消息队

2020-05-19 21:04:03 861

原创 Tomcat的使用

Tomcat下载tomcat官网:http://tomcat.apache.org安装直接将下载的tomcat压缩包解压即可*注意:此处建议不要安装在有空格或中文目录下卸载直接将解压的文件删除即可目录解析(apache开源项目通用结构)bin 可执行文件conf 配置文件lib 依赖j...

2020-05-06 20:44:40 341

原创 Java代码块

静态代码块首先我们来回顾一下static关键字,static关键字可以修饰类和类的成员还有构造函数,特点就是在类创建对象前加载并且是所有对象共享的资源,比如静态方法可以直接类名打点调用,不需要使用new关键字来创建对象。关于静态方法和非静态方法的比较静态方法:静态方法只可以调用静态成员不可以调用非静态成员 没有this对象非静态方法:非静态方法既可以调用非静态成员也可以调用...

2020-05-05 22:19:36 4794

dnspy反编译工具c#

dnspy反编译工具c#

2022-08-30

广告终结者使用说明和资源

广告终结者是一个效果很好的弹出广告清理工具,适用于IE浏览器的用户。安装后可以随浏览器启动而自动运行,使用方法非常简单。只需要点击状态条上的K字图标就可以允许与禁止关闭弹出窗口。注册版还提供关闭flash广告与网页警告提示的功能。

2020-07-05

手机端debug工具

我们上线灰度环境测试手机app的时候,有时候不知道接口返回的数据,也不知道是不是我们操作的那样,所以我们需要一个跟pc端调试一样的debug工具,那么这个是你需要的

2018-10-16

C#反编译器dnSpy最新版

dnSpy是一款非常强大的.net语言编程工具,软件能够反汇编编译工具。dnSpy专门针对.NET语言的复杂性,提供了一个更好的替代库的文档,还能够恢复丢失或不可用的源代码,解决定位性能问题,软件可以帮助开发人员分析依赖关系、检查混淆,软件是一款方便实用简单。 适用平台:WinXP/Win2K/Vista/Win7/Win8/Win10

2018-04-26

空空如也

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

TA关注的人

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