自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 秒杀 之 超卖问题

通过本节能学到什么? 什么是抢购的超卖现象? 常见的解决思路有哪些?最好的解决思路是什么? 1、引出问题: 在做抢购系统的时候,我们首先应该想到的是怎么才能避免超卖,比如说:库存只有100,结果卖了200。这种情况肯定是不能接受的。如果我们不在代码中针对该问题进行相应处理,很有可能就会造成这种不良后果。 比如: MySQL,Redis常见错误处理方式,下面用伪代码来展示下: <?php # 查询数据库存放的库存 $goods_num = $this->g..

2020-11-03 16:36:38 206 1

原创 通俗分析单线程的Redis为什么这么快

1、纯内存操作 Redis 绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,查找和操作的时间复杂度都是O(1)。 想了解下什么是时间复杂度O(1) ? 请点击这里。 拿笔记本电脑来说,假设主频是3.1G,也就是说每秒可以执行3.1*10^9个指令。所以说CPU看世界是非常非常慢的,内存比它慢百倍,磁盘比他慢百万倍。 2、单线程+多路IO复用机制 想了解下什么是多路复用以及多路复用常见的实现方式?请点击这里 单线程想要实现高性能,必须和多路IO复用机制..

2020-11-03 15:50:16 71

原创 epoll、select、poll 对比

在Redis单线程模型中,有一个非常重要的点就是IO多路复用模块。这个模块的存在,是单线程的Redis如此之快的非常重要的因素。 首先几个点需要注意下: IO多路复用这一概念,并不是Redis专属,Redis仅仅是作为系统的一个应用程序用到了系统的这一功能而已。 IO多路复用本质上一一种思想,一种为了解决单线程高并发的问题的一种解决思路,并不是一种具体的实现。在不同的系统下有不同的实现,比如说在Linux下,现在最重要的实现是epoll;在Mac系统下,现在最重要的实现是XXX;select则应该是P

2020-11-03 14:37:51 91

原创 时间复杂度 举例理解

在Redis中,我们常说在内存中的操作用的是hash表,时间复杂度是O(1),那么这个O(1)是怎么意思? 感性理解: O(1) 就是无论算法中的变量怎么变化,算法所耗费的时间总是固定的。比如说hash表,查找元素。 O(n) 就是该算法所耗费的时间是随着变量正比相关的,当变量越大的时候,所耗费的时间就越大。比如说一层for循环。 O(n2) 就是该算法所耗费的时间是随着变量n2相关的,当变量越大的时候,所耗费的时间就越大。比如说两层for循环。 参考文章: 时间复杂度:O(1)、O..

2020-11-03 13:25:34 287

原创 多线程相对于单线程的劣势

在说Redis单线程更快的时候,一般都会提到单线程虽然一个人干活,但是省去了多个人协作干活时候的沟通成本,这个“沟通成本”,在Linux中称之为多线程或者多进程的“上下文切换”。 那么多进程上下文切换的时候具体有什么成本?这个也是我们需要了解的。 具体详细的成本计算方式,可以参考下面的文章,但是现在还是不要陷进去的好。先对上下文切换有一个感性的认识,知道多线程或者多进程相比于单进程不都是优势。 主要几点: ①时间成本(每次切换进程或者线程所耗费的时间); 通过下面的文章,得到的结论是,进程之.

2020-11-03 12:44:00 214

空空如也

空空如也

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

TA关注的人

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