协程和多进程/多线程的区别

多进程/多线程就像是银行窗口,开启多进程/多线程就好比银行多开几个窗口,同时给客户办理业务。但是如果哪个窗口的客户比较磨叽,该窗口的下一个客户只能在后面等(不等同阻塞,阻塞是指线程被挂起)。每个窗口的客户依次排队办理,即为同步。
协程是通过异步实现的,好比医院的B超检查,多线程就是增加接诊窗口,但是对于每一个窗口来说,患者A挂号体检,医生给A做了登记后,让A先去喝水憋尿(耗时操作,例如网络请求),医生不会一直傻等着A憋了尿回来,而是继续接诊患者B。等A回来后,医生诊断完B,再给A做进一步检查,这就是异步。协程是同一个线程内(B超医生)的异步操作。

Read More

真正驱动你成长的,是痛苦

最近和一个朋友见面,过去她经历了一场感情风波,曾经的痛苦自怜,如今能明显感觉到已经消散了许多。

我问她,如果你有选择权,你是宁愿这场变故依旧发生,还是希望它不曾出现?

她给我的答案是,依然希望它发生,因为尽管那时候非常痛苦,但是,她更喜欢现在有所成长的自己。

人生中的痛苦,无非就是生,老,病,死,爱别离,求不得,怨憎会。

有些人会把痛苦当作生活中的灾难,宁愿深陷其中而无法自拔,但也有一些人,把痛苦视为一份包装丑陋的礼物,敢于借此获得新的生机。

Read More

如何在windows安装php redis扩展

如果自己的自己是windows系统,想联调php与redis,今天找了半天的程序与redis扩展,怕自己忘了,同时给大家做个记录和参考。

我自己本机上装的wampserver,如果想要完整地在php程序中使用redis,那么是需要安装rdis程序和php的redis扩展的。

Read More

Laravel问题集锦

配置默认队列驱动为Redis

队列配置文件是config/queue.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
return [

'default' => env('QUEUE_DRIVER', 'sync'),

'connections' => [
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'expire' => 60,
],
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'expire' => 60,
],
],

'failed' => [
'database' => 'mysql', 'table' => 'failed_jobs',
],
];

配置文件第一个配置项default用于指定默认的队列驱动,修改.env中的QUEUE_DRIVER即可。

Read More