0%

  1. 回调模式编码的复杂度高,
  2. 同步编码的并发性不高,
  3. 多线程编程需要线程间同步, 通过lock机制,会影响效率,

所以我们就需要采用同步的方式去编写异步的代码,

1
2
3
4
5
6
7
def get_url(url):
# 我们获取网页信息是耗时操作,我们需要在这里等待
html = get_html(url)# 所以我们希望在这里能跳出函数,去做一下别的事情,等获取到了数据再回来,
parse_html(html)

def get_next(url):
pass

这样我们也就不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。

所以就有了协程

阅读全文 »

ACL,是Access Control List的简写,中文名称叫做“访问控制列表”。它是由一系列条件规则(即描述报文匹配条件的判断语句)组成, 这些条件规则可以是报文的源地址、目的地址、端口号等,是一种应用在网络设备各种软硬接口上的的指令列表。

阅读全文 »

什么是Vuex?

Vuex 是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间的数据共享.

image-20200710180830043

如何没有vuex,我们大范围的传值的时候会十分麻烦,而有了vuex 我们只需要跟store相互就可以了

当然我们也不是所有的数据都需要放到vuex中,有一些组件私有的数据,我们没有必要把他放到vuex中,只有组件之间共享的数据,才有必要放到vuex中.

阅读全文 »

前言

最近项目需要移动端实现轮播图,查看文档,总结一下

原理

image-20200810235057262

轮播 其实就是让图片排在一排,等鼠标或手指让其显示在视口,可被看见的区域内.

阅读全文 »

定义

  1. 一个redis服务可以由多个该服务的复制品,这个redis服务称为master,其他复制品称为slaves.
  2. master会一直将做空的数据更新同步给slaves.保持主从同步.
  3. 只要master可以执行写命令,slave只能执行读命令.

作用

分担了读的压力(高并发),由于写操作执行的相对较少.

阅读全文 »

根据维基百科的定义,JSON WEB TokenJWT,读作 [/dʒɒt/]),是一种基于JSON的、用于在网络上声明某种主张的令牌(token)。JWT通常由三部分组成: 头信息(header), 消息体(payload)和签名(signature)。

阅读全文 »

Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery, 举几个实例场景中可用的例子:

  • 异步任务:将耗时的操作任务提交给Celery去异步执行,比如发送短信/邮件、消息推送、音频处理等等
  • 做一个定时任务,比如每天定时执行爬虫爬取指定内容
  • 还可以使用celery实现简单的分布式爬虫系统等等
阅读全文 »

mysql创建用户

命令:

1
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

说明:

  • username: 用户名,
  • host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
  • password: 密码
阅读全文 »

1.传统方式:
基于主库的bin-log将日志事件和事件位置复制到从库,从库再加以应用来达到主从同步的目的。

2.Gtid方式(MySQL>=5.7推荐使用):
基于GTID的复制中,从库会告知主库已经执行的事务的GTID的值,然后主库会将所有未执行的事务的GTID的列表返回给从库,并且可以保证同一个事务只在指定的从库执行一次。

阅读全文 »