帝国的崩溃!

2021年7月26日,在天津的美副国务卿收到了中方的最新表态。

 

我方指出,中美关系目前陷入僵局,根本原因就是美国一些人把中国当作“假想敌”。

 

历史上,美国的敌人不在少数,但规模大的、年代近的往往容易被人记忆犹新。

 

所以会见中,我方直接挑明,美方一些人用“珍珠港时刻”,“斯普特尼克时刻”来渲染中美冲突。

 

珍珠港好理解,斯普特尼克指苏联发射的第一颗卫星”斯普特尼克”1号,超越美国,率先进入太空,让美国意识到强劲的挑战者出现了

 

通稿接下来这句话尤为关键。

“一些专家学者明言,美方是在把中国比喻成二战时的日本、冷战时的苏联,想通过树立中国这个“假想敌”,重新点燃国家目标感”

从中国的视角看,美国的行为匪夷所思。

 

妖魔化中国,遏制中国发展,并不能解决国内深层次结构性矛盾,让美国再次伟大。

 

但从西方视角出发,尤其是西方的精英们看来,这恰恰是最有效的办法。

 

因为历史一再证明,要完成广泛的社会动员,或者说社会大众支持政府决策,改弦易辙,必须要有迫在眉睫的威胁。

 

有趣的是,我方这句话开头那个“明言”,是“一些专家学者”。

 

既然非官方定调,那也不会是国内学者。

 

瓜田李下嘛。

 

换言之,一定是国外的专家学者,某些“递刀子”,搞黑材料的专家学者。

 

尼尔·弗格森,著名的历史学家,我看就是其中一位。

 

最近君临在《经济学人》上读到他的一篇文章《美帝的崩溃不会是和平的》。

帝国的崩溃!

不妨就来分析下这篇文章,来一窥西方精英们脑海里挥之不去的。

 

“格林威治时刻”。

1

尼尔·弗格森是苏格兰人,哈佛大学历史系教授,《时代》评选的百位世界最有影响力的人物。

 

可以说,他是这个星球上最富盛名的历史学家,其有关罗斯柴尔德家族,商业货币史的作品广受赞誉。

 

既懂历史,又懂经济,长相讨喜,算是西方“易中天+吴晓波”的Pro版。

 

众所周知,历史学领域向来盛产公知。

 

太阳底下没有新鲜事,人类的故事也是演员常新,但舞台背景、戏码桥段照旧。

 

所以历史学家总是善于借古喻今,搞影射史学,针砭时事,臧否人物。

 

史学知识丰富,段子特别多的好处,就是故事讲的特别精彩。

 

因此很难不成为媒体的宠儿。

 

尽管历史没有立场,但历史学家讲故事(历史叙事)不免有立场。

 

文以载道,是知识分子绕不过的坎。

 

所以弗老师就是典型的“畅销书作家+明星学者+媒体宠儿=西方公知”。

 

其观点就很能代表西方“一些人”的思维。

 

叙述大英兴衰的《帝国》,是弗老师的代表作。

 

在左翼势力甚大的西方传媒领域,弗老师是不折不扣的异端。

 

因为他旗帜鲜明的支持帝国。

 

弗老师常常唠叨,帝国是个好东西,给蛮夷之地带来文明,输入了秩序。

 

就像儒家士大夫捍卫的道统。

 

天朝的感召力,不仅在于文化上的优越,礼制上的完备、道德上的无暇,更在于武力上的威慑,倘若外夷作恶,必将大兵进剿,匡扶正义。

 

简而言之,就是“天不生大英,万古如长夜”,盎撒核心价值观吹鼓手。

 

所以坊间戏称“帝国招魂师”。

 

很明显,政治光谱上看,弗格森就是典型右派,和亨廷顿类似,属于新保守主义者。

 

对中国虽免不了批评,但右派相对左派意识形态上来说,毕竟实用主义挂帅。

 

而且中华帝国也是可寄托幽思的帝国,批评相对温和,以至于他的书在中华帝国的传统疆域上出了又出……

 

正因为右派的实用,所以他招魂要算理客中。

 

虽为大英评功摆好,但也算不上歌功颂德,殖民中的大英龌蹉往事的黑材料大书特书。

 

但他还说,大英的统治不见得比本地统治者要坏。

 

英式帝国相较其他帝国(昭和帝国在东亚,比利时在刚果,纳粹千年帝国,沙俄的土地贪婪),也要算矮子里的高个。

 

所以就像什么都能圆回去的老胡,弗老师同样也能最终拐到“天不生大英…”。

 

这叫高级洗地。

 

既然如此熟悉大英兴衰,那么写美帝崩溃,就免不了要拿大英来对比一番。

 

而大英走向衰落的一战前,就和现在的美国颇为相似,这就是这篇文章有趣之处。

 

一战前的大英财政基本平衡。

 

为了打一战,大英下了血本。

 

大英出钱,殖民地出命,为了母国的荣耀战至最后一人。

帝国的崩溃!

一战结束,大英公共债务占GDP比例上升到109%。

 

而且巧的是,一战结束的1918年,西班牙大流感爆发。

 

战争结束了,但大英债务并没有清偿,公共债务下不来,反而还在不断飙升。

 

第三帝国成立的1933年,欧洲的前景虽蒙上一篇阴霾,但还算歌舞升平。

 

可大英的公共债务已接近GDP的200%。

 

美国呢,在克林顿任期,美国实现财政盈余,国力如日中天。

 

布什打反恐战争,略微抬升了赤字,但不算严重。

 

奥巴马量宽救市,美赤字大幅飙升,公共债务激增。

 

然后也下不来了。

 

直到疫情再次猛烈推升国债数量。

帝国的崩溃!

目前美国还继续实行常态化的赤字货币化,今年的国债要占到GDP的130%,比当年二战还高。

 

按照这个速度,弗老师引用美国会的数据,声称2051年超过200%,可能有点乐观。

 

要我看,可能2030年就要达到。

2

虽然从债务规模上看,美国对当年的大英还可以50步笑100步。

 

但美国不像当年的英国,有两个不利条件。

 

其一,1925年英镑回归金本位,央行无法放水宏观调控。

 

虽然自缚手脚,在经济泥潭里度过了八年通缩,但也算穿了件护身马甲。

 

1931年英国放弃金本位,央行随即宽松货币。

 

当实际利率下降,付息压力减小,就给财政创造了新的腾挪空间,大英缓过一口气。

 

而美国早在1971年,就把这个马甲脱了个精光。

 

其二,当年大英的债务,是永久债券的形式。

 

如今的美国债务期限短,平均期限65个月。

 

也就意味着利率的变化,美国将比当年的大英更敏感,冲击也更大。

 

目前美国的联邦债务(国债,不算地方债)是28万亿,按照目前十年期国债利率1.3%计算。

帝国的崩溃!

每年要偿还3640亿,如果按弗老师预测的未来几年到2.5%,又或者更高。

 

那么每年至少偿还7000亿。

 

要知道,美国联邦政府财政收入为3.6万亿,每年7000亿利息,几乎等于美国军费支出。

 

联邦政府的钱就那么多,多还了利息,其他支出必然减少。

 

而联邦支出有刚性和非刚性之分。

 

刚性支出动不得,国防支出可自由支配。

 

挤压国防支出就是一种没有办法的办法。

帝国的崩溃!

地球人都知道,美国行走江湖,靠的是“美元+美军”的二位一体。

 

国防支出下降=军事实力下降。

 

两根支柱拉跨一根,另一根还能好?

 

对美国而言,这恐怕是一个不乐观的死亡螺旋。

 

军事实力下降的结果,就是新的挑战者蠢蠢欲动,在美国面前秀肌肉了。

 

历史上,大英对德国的绥靖,也不是说政治家都是软蛋。

 

而是“确实弄不到钱”在决策中的权重很高罢了。

 

帝国的衰落意味着什么,没有人比中国人更清楚这一点。

 

19世纪,当东亚千年不遇的中国全面衰落,日本的暴走,就是最典型的例子。

 

作为帝国首席招魂师,难怪弗老师痛心疾首,历数那些美国SB总统。

 

从怂包奥巴马退出伊拉克不当世界警察,到年老昏庸的拜登从阿富汗仓皇撤退。

 

甚至连右翼“友军”特朗普也批判一番,“就是你个鳖孙最先嚷嚷从阿富汗撤军”。

 

在弗老师的挑战者名单上,中国毫无悬念的排行第一,接着还有俄罗斯、伊朗、朝鲜……

 

帝国的崩溃,意味着战争。

 

这似乎就呼应了弗老师文章的标题。

 

难道文章就结束了吗?

 

没有,文章才写了一半。

3

弗老师是个文化人,就像所有文化人说话一样。

 

前面都是暗度陈仓的铺垫,后面才是图穷匕见的重点。

 

弗老师从财政切入,论证美帝崩溃,看起来似乎符合逻辑,但并不符合他自己的观点。

 

因为弗老师还写过一本《金钱关系》。

 

在此书中,弗老师批判了金钱决定论,就是经济基础不能决定上层建筑,而是反过来。

 

金钱没有想象中那么重要,推动世界运转的是政治事件,尤其是战争。

 

为了战争的胜利,需要筹集战争费用。

 

就有了税收机构。

 

要以最低的代价、最快的速度筹集。

 

就有了国债,进而有了管理国债的单位——央行。

 

而国债需要交易场所,又有了证券市场。

 

这就构成了现代经济体系。

 

此外,国内政治冲突——不仅有财政税收和信贷这类经济问题,也涉及宗教、民族等非经济问题。

 

这又推动了现代政治体制的演变,尤其是议会和政党。

 

而政治事件和体制又往往规定和控制了经济发展,也是导致经济起伏不稳的主要原因。

 

接下来,弗老师危言耸听,脑补“If Beijing invades Taiwan”。

 

(注意,是invades,不是regain)

 

然后他说,大部分美国人会张伯伦附体,因为其在目睹纳粹瓜分捷克斯洛伐克时,若无其事的说:

“一个遥远国家的争吵,我们对此一无所知”

历史上大英的软弱,带节奏的知识分子要扛大锅。

 

弗老师就引用了著名的帝国主义头子,丘吉尔充满厌恶的回忆。

 

那是1933年,牛津大学辩论联盟居然通过一项动议:

“本院拒绝为国王和国家而战”

是啊,在英国,这样的事情被认为是自由民主的,大众容易对这样的事件一笑置之。

 

但在当时的帝国挑战者,德、意、日、俄,他们怎么看大英?

 

帝国主义都是纸老虎。

 

就像1940年5月,纳粹的钢铁洪流碾过比利时、荷兰,绕过固若金汤的马奇诺防线,号称欧洲陆军最强的法国,秒跪。

 

西方列强的弱鸡表现,始终如一,似乎还是祖上真传。

 

而当时正在珍珠港边缘跃跃欲试的日本,其国内营销号就在渲染:

“西方在衰落!他们的民众自私愚蠢!”

然后弗老师不忘扯上中国:

“这正是中国新一批 ‘wolf-warrior’外交官和民族主义知识分子,今天对美国的看法。”

可美国人似乎却不以为意。

 

接下来弗老师引用了美国的左右派,嘲笑谩骂帝国的言论。

 

例如著名报纸记者幸灾乐祸地说:“美帝正在崩溃”

 

例如右翼经济学家幽默地想象:“美帝国的衰落会是什么样子?”

 

例如非裔美国哲学家认为:“黑人命案和反对美帝的斗争是一体的”

 

甚至亲特朗普的共和党人也在说:“新冠大流行是美帝裸奔的最新例子”

 

看来,弗老师对美帝烂泥扶不上墙的捉急心态,真是溢于言表。

 

接下来,这位招魂师终于抖出了他真正想说的:

“简而言之,就像20世纪30年代的英国人一样,2020年代的美国人已经不爱帝国了”

为什么盎撒自由世界的人民不能团结起来,阻止帝国的崩溃?

 

在《帝国》中,弗老师描述了一个发生在印度的意味深长的故事。

4

1883年,时值大英如日中天。

 

2月的印度加尔各答,市政厅前发生了一场示威,上千人包围了殖民政府,激愤地抗议:

“那些人怎么可能成为公正的法官?!他们可能作出公正的判决吗?绝不可能!这些人心中充满了仇恨,只渴望权力……”

 

“现在又来索要司法裁决的权力,还谴责我们这个英勇顽强的民族”

这是印度人在抗议英国殖民者?

 

不,是英国人在抗议本国总督。

 

事情起因于一位以进步思想闻名的新总督,刚一上任就废除一条法令。

 

允许印度人在刑事案件中审判白人被告。

 

对习惯种族特权的英国人来说。

 

让阿三来审判英国人,简直是奇耻大辱,婶婶可忍,叔叔不能忍,白人揭竿而起,史称“白人兵变”。

 

但弗老师不愧为帝国高级洗地工,他不仅揭露大英统治的黑暗。

 

也试图引领读者去思考,人们也许从未思考过的“The other hand”。

 

“The other hand”,大英不同于其它帝国的特点在于。

 

每当英国人对他国实施暴行时,内部总有激烈的批评声响起。

 

当大英帝国在开拓他的全球霸业时。

 

英国商人获得了强加贸易给落后国家的“自由”,英国军队获得了镇压土著、武装经商的“自由”。

 

但是英国政府从未因此剥夺民众批评这种“自由”的自由。

 

也就是说,大英如猛犬下山般征服世界的时候,从来没有试图杀死在自己耳旁嗡嗡叫的“苍蝇”。

 

直到猛犬蜕变为狗头,而苍蝇在嗡嗡声中变成了老鹰。

帝国的崩溃!

除了大量的嘴炮,甚至大量英奸在其鼓动下,不顾祖国的“领土主权完整,安全和发展利益”,身体力行的站在大英的对立面。

 

可以说大英帝国的建立就是一个悖论:

 

帝国挥舞着铁拳打天下,但在帝国腹地却宽容对政府的自由批评。

 

然而,“嗡嗡叫”的自由,是其它一切自由之母。

 

当一个帝国欲称霸世界,却无法割舍“嗡嗡叫”的自由时,它实际就已经为自己的覆灭埋下了伏笔。

 

或许大英的衰落有100个原因,但暴力和宽容、强制和自由之间的悖论,一定有一席之地。

 

这个悖论,让帝国的逻辑无法完美自洽。

 

不可能一边宣扬天赋人权,一边心安理得地铐住黑人摘葡萄。

 

不可能一边说民主平等,一边将原住民儿童投入集中营。

 

成就帝业,且能让嗡嗡叫妄仪朝纲?

 

继承了大英传统的美国,其实也是类似。

 

正如那本著名的《美国反对美国》,书名说的就是这一悖论。

 

也正如亨廷顿的《美国政治:激荡于理想与现实之间》。

 

当美国人信仰的自由、民主、平等、个人主义、法治的的美国信条,遭到龌龊现实挑战时。

 

美国就会进入信条激荡时期,“天真”的人们就会用理想去问责现实,揭露美国的种种“罪行”。

 

我们知道,自由的性质类似于火苗,借助一点风力,就可能无边蔓延。

 

从斯密到伯克,那些历史上的思想家,这些煽风点火者的努力,让大英的一点点自由蔓延成了更多的自由、越来越多的自由,及至势不可挡的自由。

 

正是在这个意义上,与其说大英是被打垮的,不如说是自我解构的。

 

与罗马、蒙古、德意志、日本等帝国的“斩钉截铁”,“铁板一块”相比。

 

大英一直弥漫着一股散漫颓废的气质。

 

所以在《帝国》中,弗老师说大英的崩溃原因,不是殖民地人民的独立运动,而是其他帝国。

 

因为这些帝国对待其臣民的态度,远比英国严酷。

 

在弗老师的行文中,到处可见“我们”,“他们”的表述。

 

作为浸透帝国气质的遗民,弗老师也不能免俗。

 

无法放弃帝国,但又割舍不下自由。

 

或许,这就是他们心中的“格林威治时刻”吧。

尾声

在文章的末尾,弗老师又请出了帝国主义头子丘吉尔。

 

在他的二战回忆录《暴风前夕》里,老头说:

“恶人的恶,被美德的弱点所强化;受限于民主国家的结构和习惯,除非它们被焊接成更大的有机体,否则就缺乏那些坚持和信念的要素,而只有这些要素才能给卑微的大众带来安全”

就是说,坏人是被好人惯出来,民主制度就这尿性,除非让卑微的大众团结起来,不然他们就心无祖国,任人宰割。

 

弗老师终于图穷匕见,借昔人之口,端出了他的主张。

 

谁是盎撒人的问题,变成了谁是盎撒敌人的问题。

 

一旦敌人被确定,盎撒的民族主义就会激活,借此整合内部力量,消解散漫颓废。

 

也就呼应了开头部里的“专家言明”——树立假想敌,重新点燃国家目标感。

 

所以现在我们就能理解弗老师代表了什么。

 

虽然现在左翼民主党当政,但右翼势力依然阴魂不散。

 

中国,就是右翼们紧紧抓住,生怕从指尖溜走的“完美敌人”。

 

不过,右翼到底是要借此骗选票,还是真要重新团结人民,还不好说。

 

但事与愿违,美方“一些人”试图树立假想敌,美国人民似乎不太买账,反而激发了假想敌们更汹涌的民族情绪。

 

可是这到底是不是“一些人”的陷阱?

 

看起来,“弗老师们”心底并不厌恶这种民族情绪,似乎倒是有些窃喜。

 

所以他一再渲染:

If American deterrence fails and China gambles on a coup de main, the United States will face the grim choice between fighting a long, hard war—as Britain did in 1914 and 1939—or folding, as happened over Suez in 1956.

当这种民族情绪失控的时候,他们“焊接有机体”目的,也许就达到了。

 

事情会如“一些人”所愿吗?

— —END— —

转自:https://mp.weixin.qq.com/s/4xLHiykcz0VsTdImL4RtCQ

查理·芒格:征服世界的唯一办法,向内求取,提升自己!

作者:李录
来源:《穷查理宝典》中文版序言

 

“查理·芒格是一个完全凭借智慧取得成功的人,这对于读书人来讲无疑是一个令人振奋的例子。与我们在社会上所看到的一些权钱交易、潜规则、商业欺诈、造假等手段不同,他用最干净的方法,取得了商业的巨大成功。”

 

1

 

巴菲特说他一生遇人无数,从来没有遇到过像查理这样的人。在我同查理交往的这些年里,我有幸能近距离了解查理,也对这一点深信不疑。甚至我在所阅读过的古今中外人物传记中也没有发现类似的人。

 

查理就是如此独特的人,他的独特性既表现在他的思想上,也表现在他的人格上。比如说,查理思考问题总是从逆向开始。

 

如果要明白人生如何得到幸福,查理首先是研究人生如何才能变得痛苦;要研究企业如何做强做大,查理首先研究企业是如何衰败的;大部分人更关心如何在股市投资上成功,查理最关心的是为什么在股市投资上大部分人都失败了。

 

他的这种思考方法来源于下面这句农夫谚语中所蕴含的哲理:我只想知道将来我会死在什么地方,这样我就不去那儿了。

 

查理在他的一生中,持续不断地研究收集关于各种各样的人物、各行各业的企业以及政府管治、学术研究等各领域中的著名失败案例,并把那些失败的原因排列成正确决策的检查清单,使他在人生、事业的决策上几乎从不犯重大错误。这点对巴菲特及巴郡(即伯克希尔·哈撒韦公司)50 年业绩的重要性是再强调也不为过的。

 

查理对于由于人类心理倾向引起的灾难性错误尤其情有独钟。最具贡献的是他预测:金融衍生产品的泛滥和会计审计制度的漏洞即将给人类带来的灾难。2008 年和 2009 年的金融海啸及全球经济大萧条不幸验证了查理的远见。

 

2

 

查理的头脑是原创性的。

 

他有儿童一样的好奇心,又有第一流的科学家所具备的研究素质和科学研究方法,一生都有强烈的求知欲和好奇心,几乎对所有的问题都感兴趣。任何一个问题在他看来,都可以使用正确的方法通过自学完全掌握,并可以在前人的基础上创新。

 

这点上他和自己的偶像富兰克林非常相似,类似于一位十八九世纪百科全书式的人物。

 

近代很多第一流的专家学者能够在自己狭小的研究领域内做到相对客观,一旦离开自己的领域不远,就开始变得主观、教条、僵化,或者干脆就失去了自我学习的能力,所以大都免不了瞎子摸象的局限。

 

查理的脑子就从来没有任何学科的条条框框。他的思想辐射到事业、人生、知识的每一个角落。

 

在他看来,世间宇宙万物都是一个相互作用的整体,人类所有的知识都是对这一整体研究的部分尝试,只有把这些知识结合起来,并贯穿在一个思想框架中,才能对正确的认知和决策起到帮助作用。所以他提倡要学习在所有学科中真正重要的理论,并在此基础上形成所谓的“普世智慧”,以此为利器去研究商业投资领域的重要问题。

 

查理这种思维方式的基础是基于对知识的诚实。他认为,这个世界复杂多变,人类的认知永远存在着限制,所以你必须要使用所有的工具,收集各种新的可以证否的证据,并随时修正。

 

3

 

事实上,所有的人都存在思想盲点。我们对自己的专业、旁人或是某一件事情或许能够做到客观,但是对于天下万事万物都秉持客观的态度却是很难的,甚至可以说是有违人之本性的。

 

但是查理却可以做到凡事客观。查理也讲到了通过后天的训练是可以培养客观的精神的。而这种思维方式的养成将使你看到别人看不到的东西,预测到别人预测不到的未来,从而过上更幸福、自由和成功的生活。

 

即使这样,一个人在一生中可以真正得到的真见卓识仍然非常有限,所以正确的决策必须局限在自己的“能力圈”以内。一种不能够界定其边界的能力,当然不能称为真正的能力。

 

怎么才能界定自己的能力圈呢?

 

查理说,如果我要拥有一种观点,如果我不能够比全世界最聪明、最有能力、最有资格反驳这个观点的人更能够证否自己,我就不配拥有这个观点。所以当查理真正地持有某个观点时,他的想法既原创、独特又几乎从不犯错。

 

4

 

一次,邻座一位漂亮的女士坚持让查理用一个字来总结他的成功,查理说是“理性”。

 

然而查理讲的“理性”却不是我们一般人理解的“理性”。查理对“理性”有更苛刻的定义。正是这样的“理性”,让查理具有敏锐独到的眼光和洞察力,即使对于完全陌生的领域,他也能一眼看到事物的本质。

 

巴菲特就把查理的这个特点称作“两分钟效应”——他说,查理比世界上任何人更能在最短时间之内把一个复杂商业的本质说清楚。

 

巴郡投资比亚迪的经过就是一个例证。记得 2003 年,我第一次同查理谈到比亚迪时,他虽然从来没有见过王传福本人,也从未参观过比亚迪的工厂,甚至对中国的市场和文化也相对陌生,可是他当时对比亚迪提出的问题和评论,今天看来仍然是投资比亚迪最实质的问题。

 

巴菲特说:“本杰明·格拉汉姆曾经教我只买便宜的股票,查理让我改变了这种想法。这是查理对我真正的影响。要让我从格拉汉姆的局限理论中走出来,需要一股强大的力量。查理的思想就是那股力量,他扩大了我的视野。”

 

巴菲特谈查理·芒格:

 

他推动我以非同寻常的速度从猩猩进化到人类,否则我会比现在贫穷得多。

 

5

 

查理的兴趣不仅限于思考,凡事也喜欢亲历亲为,并注重细节。

 

他有一艘世界上最大的私人双体游艇,而这艘游艇就是他自己设计的。

 

他还是个出色的建筑师。他按自己的喜好建造房子,从最初的图纸设计到之后的每一个细节,他都全程参与。比如,他捐助的所有建筑物都是他自己亲自设计的,这包括了斯坦福大学研究生院宿舍楼、哈佛高中科学馆以及亨廷顿图书馆与园林的稀有图书研究馆。

 

6

 

查理天生精力充沛。

 

我认识查理是在 1996 年,那时他 72 岁。到今年查理 86 岁,已经过了十几年了。在这十几年里,查理的精力完全没有变化。他永远是很早起身,7:30 开始早餐会同时由于某些晚宴应酬的缘故,他的睡眠时间可能要比常人少,但这些都不妨碍他旺盛的精力。

 

而且他记忆力惊人。
 
我很多年前跟他讲的比亚迪的营运数字,我都已经记忆模糊了,他还记得。
 
86 岁的他记忆比我这个年轻人还好。
 
这些都是他天生的优势,但使他异常成功的特质却都是他后天努力获得的。

 

查理对我而言,不仅是合伙人,是长辈,是老师,是朋友,是事业成功的典范,也是人生的楷模。他让我明白,一个人的成功并不是偶然的,时机固然重要,但人的内在品质更重要。

 

7

 

查理喜欢与人早餐约会。

 

记得第一次与查理吃早餐时,我准时赶到,发现查理已经坐在那里把当天的报纸都看完了。虽然离 7:30 还差几分钟,让一位德高望重的老人等我令我心里很不好受。

 

第二次约会,我大约提前了一刻钟到达,发现查理还是已经坐在那里看报纸了。

 

到第三次约会,我提前半小时到达,结果查理还是在那里看报纸,仿佛他从未离开过那个座位,终年守候。

 

直到第四次,我狠狠心提前一个钟头到达,6:30 坐那里等候,到 6:45 的时候,查理悠悠地走进来了,手里拿着一摞报纸,头也不抬地坐下,完全没有注意到我的存在。

 

以后我逐渐了解,查理与人约会一定早到。到了以后也不浪费时间,会拿出准备好的报纸翻阅。自从知道查理的这个习惯后,以后我俩再约会,我都会提前到场,也拿一份报纸看,互不打扰,等 7:30 之后再一起吃早饭聊天。

 

8

 

偶尔查理也会迟到。

 

有一次我带一位来自中国的青年创业者去见查理。查理因为从一个午餐会上赶来而迟到了半个小时。一到之后,查理先向我们两个年轻人郑重道歉,并详细解释他迟到的原因,甚至提出午餐会的代客泊车应如何改进才不会耽误客人 45 分钟的等候时间。

 

那位中国青年既惊讶又感动,因为在全世界恐怕也找不到一位地位如查理一般的长者会因迟到向小辈反复道歉。

 

9

 

有一年查理和我共同参加了一个外地的聚会。活动结束后,我要赶回纽约,没想到却在机场的候机厅遇见查理。

 

他庞大的身体在过安检检测器的时候,不知什么原因不断鸣叫示警。而查理就一次又一次地折返接受安检,如此折腾半天,好不容易过了安检,他的飞机已经起飞了。

 

可查理也不着急,他抽出随身携带的书籍坐下来阅读,静等下一班飞机。那天正好我的飞机也误点了,我就陪他一起等。

 

我问查理:“你有自己的私人飞机,巴郡也有专机,你为什么要到商用客机机场去经受这么多的麻烦呢?”

 

查理答:“第一,我一个人坐专机太浪费油了。第二,我觉得坐商用飞机更安全。”但查理想说的真正理由是第三条:“我一辈子想要的就是融入生活,而不希望自己被孤立。

 

查理最受不了的就是因为拥有了钱财而失去与世界的联系,把自己隔绝在一个单间,占地一层的巨型办公室里,见面要层层通报,过五关斩六将,谁都不能轻易接触到。这样就与现实生活脱节了。

 

“我手里只要有一本书,就不会觉得浪费时间。查理任何时候都随身携带一本书,即使坐在经济舱的中间座位上,他只要拿着书,就安之若素。

 

有一次他去西雅图参加一个董事会,依旧按惯例坐经济舱,他身边坐着一位中国小女孩,飞行途中一直在做微积分的功课。

 

他对这个中国小女孩印象深刻,因为他很难想象同龄的美国女孩能有这样的定力,在飞机的嘈杂声中专心学习。如果他乘坐私人飞机,他就永远不会有机会近距离接触这些普通人的故事。

 

10

 

查理虽然严于律己,却非常宽厚地对待他真正关心和爱的人,不吝金钱,总希望他人多受益。

 

他一个人的旅行,无论公务私务都搭乘经济舱,但与太太和家人一起旅行时,查理便会搭乘自己的私人飞机。他解释说:“太太一辈子为我抚育这么多孩子,付出甚多,身体又不好,我一定要照顾好她。

 

11

 

查理一旦确定了做一件事情,他可以去做一辈子。

 

比如说,他在哈佛高中及洛杉矶一间慈善医院的董事会任职长达 40 年之久。对于他所参与的慈善机构而言,查理是非常慷慨的赞助人。但查理投入的不只是钱,他还投入了大量的时间和精力,以确保这些机构的成功运行。

 

查理一生研究人类失败的原因,所以对人性的弱点有着深刻的理解。基于此,他认为人对自己要严格要求,一生不断提高修养,以克服人性本身的弱点。这种生活方式对查理而言是一种道德要求。在外人看来,查理可能像个苦行僧,但在查理看来,这个过程却是既理性又愉快,能够让人过上成功、幸福的人生。

 

查理就是这么独特。但是想想看,如果芒格和巴菲特不是如此独特的话,他们也不可能一起在 50 年间为巴郡创造了这样了不起的业绩。

 

12

 

有人问查理,如何才能找到一个优秀的配偶?

 

查理说,最好的方式就是让自己配得上她/他,因为优秀配偶都不是傻瓜。

 

晚年的查理时常引用一句话来结束他的演讲:“我的剑留给能够挥舞它的人。”

 

13

 

与查理交往的这些年,我常常会忘记他是一个美国人。他更接近于我理解的中国传统士大夫。

 

旅美 20 年期间,作为一个华人,我常常自问:中国传统文化的灵魂和精华到底是什么?

 

到了美国之后,我有幸在哥伦比亚大学求学期间系统地学习了对西方文明史起到塑造性作用的 100 多部原典著作,以希腊文明为起点,延伸到欧州,直至现代文明。

 

在整个阅读与思考的过程中,我愈发觉得,中国传统文明的灵魂其实就是士大夫文明,是一个如何提高自我修养、自我超越的过程。

 

孔子《大学》曰:“正心,修身,齐家,治国,平天下。”
在当代,市场与科技,为怀有士大夫情怀的读书人提供了前所未有的舞台。可以说查理就是一个“商才士魂”的最好典范。

 

14

 

首先,查理在商业领域极为成功。然而在与查理的深度接触中,我却发现查理的灵魂本质却是一个道德哲学家,一个学者。

 

正如前面所提到的,查理对自身要求很严。他虽然十分富有,但过的却是苦行僧般的生活。他现在居住的房子还是几十年前买的一套普通房子,外出旅行时永远只坐经济舱,而约会总是早到 45 分钟,还会为了偶尔的迟到而专门致歉。在取得事业与财富的巨大成功之后,查理又致力于慈善事业,造福天下人。

 

查理是一个完全凭借智慧取得成功的人,这对于读书人来讲无疑是一个令人振奋的例子。

 

他的成功完全靠投资,而投资的成功又完全靠自我修养和学习,这与我们看到的一些权钱交易、潜规则、商业欺诈、造假等毫无关系。作为一个正直善良的人,他用最干净的方法,充分运用自己的智慧,取得了这个商业社会中的巨大成功。

 

在市场经济下的今天,满怀士大夫情怀的中国读书人,是否也可以通过学习与自身修养的锻炼,同样取得世俗社会的成功,并实现自身的价值及帮助他人的理想呢?

 

15

 

2010 年初,与查理相濡以沫 50 年的太太南茜不幸病逝。
 
几个月之后,一次意外事故又导致查理仅存的右眼丧失了 90% 的视力,致使他一度几乎双目失明。
 
对于一位 86 岁视读书思考胜于生命的老人而言,两件事情的连番打击可想而知。

 

然而我所看到的查理却依然是那样理性、客观、积极与睿智。他既不怨天尤人,也不消极放弃,在平静中积极地寻求应对方法。

 

他尝试过几种阅读机器,甚至一度考虑过学习盲文。后来奇迹般的,他的右眼又恢复了 70% 的视力。我们大家都为之雀跃!然而我同时也坚信:即使查理丧失了全部的视力,他依然会找到方法让自己的生活既有意义又充满效率。

 

无论顺境、逆境,都保持客观积极的心态——这就是查理。

 

“问——追女神的最好方法是什么?

 

答——让自己配得上她。

 

这个思维方式,几乎适用一切人生难题。

 

聪明人在人生的某一个时刻,总会突然明白——

 

向内求取,提升自己,是征服世界的唯一办法。”

– END –

转自:https://mp.weixin.qq.com/s/G6SQAxs6g484W365mBfmvw

把 Redis 当作队列用,真的合适吗?

作者:Magic Kaito

来源:水滴与银弹

大家好,我是猫哥,今天分享一篇技术干货:

我经常听到很多人讨论,关于「把 Redis 当作队列来用是否合适」的问题。

有些人表示赞成,他们认为 Redis 很轻量,用作队列很方便。

也些人则反对,认为 Redis 会「丢」数据,最好还是用「专业」的队列中间件更稳妥。

究竟哪种方案更好呢?

这篇文章,我就和你聊一聊把 Redis 当作队列,究竟是否合适这个问题。

我会从简单到复杂,一步步带你梳理其中的细节,把这个问题真正的讲清楚。

看完这篇文章后,我希望你对这个问题你会有全新的认识。

在文章的最后,我还会告诉你关于「技术选型」的思路,文章有点长,希望你可以耐心读完。

把 Redis 当作队列用,真的合适吗?

从最简单的开始:List 队列

首先,我们先从最简单的场景开始讲起。

如果你的业务需求足够简单,想把 Redis 当作队列来使用,肯定最先想到的就是使用 List 这个数据类型。

因为 List 底层的实现就是一个「链表」,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非常符合消息队列的模型。

如果把 List 当作队列,你可以这么来用。

生产者使用 LPUSH 发布消息:

127.0.0.1:6379> LPUSH queue msg1
(integer) 1
127.0.0.1:6379> LPUSH queue msg2
(integer) 2

消费者这一侧,使用 RPOP 拉取消息:

127.0.0.1:6379> RPOP queue
"msg1"
127.0.0.1:6379> RPOP queue
"msg2"

这个模型非常简单,也很容易理解。

把 Redis 当作队列用,真的合适吗?

但这里有个小问题,当队列中已经没有消息了,消费者在执行 RPOP 时,会返回 NULL。

127.0.0.1:6379> RPOP queue
(nil)   // 没消息了

而我们在编写消费者逻辑时,一般是一个「死循环」,这个逻辑需要不断地从队列中拉取消息进行处理,伪代码一般会这么写:

while true:
    msg = redis.rpop("queue")
    // 没有消息,继续循环
    if msg == null:
        continue
    // 处理消息
    handle(msg)

如果此时队列为空,那消费者依旧会频繁拉取消息,这会造成「CPU 空转」,不仅浪费 CPU 资源,还会对 Redis 造成压力。

怎么解决这个问题呢?

也很简单,当队列为空时,我们可以「休眠」一会,再去尝试拉取消息。代码可以修改成这样:

while true:
    msg = redis.rpop("queue")
    // 没有消息,休眠2s
    if msg == null:
        sleep(2)
        continue
    // 处理消息        
    handle(msg)

这就解决了 CPU 空转问题。

这个问题虽然解决了,但又带来另外一个问题:当消费者在休眠等待时,有新消息来了,那消费者处理新消息就会存在「延迟」。

假设设置的休眠时间是 2s,那新消息最多存在 2s 的延迟。

要想缩短这个延迟,只能减小休眠的时间。但休眠时间越小,又有可能引发 CPU 空转问题。

鱼和熊掌不可兼得。

那如何做,既能及时处理新消息,还能避免 CPU 空转呢?

Redis 是否存在这样一种机制:如果队列为空,消费者在拉取消息时就「阻塞等待」,一旦有新消息过来,就通知我的消费者立即处理新消息呢?

幸运的是,Redis 确实提供了「阻塞式」拉取消息的命令:BRPOP / BLPOP,这里的 B 指的是阻塞(Block)。

把 Redis 当作队列用,真的合适吗?

现在,你可以这样来拉取消息了:

while true:
    // 没消息阻塞等待,0表示不设置超时时间
    msg = redis.brpop("queue"0)
    if msg == null:
        continue
    // 处理消息
    handle(msg)

使用 BRPOP 这种阻塞式方式拉取消息时,还支持传入一个「超时时间」,如果设置为 0,则表示不设置超时,直到有新消息才返回,否则会在指定的超时时间后返回 NULL。

这个方案不错,既兼顾了效率,还避免了 CPU 空转问题,一举两得。

注意:如果设置的超时时间太长,这个连接太久没有活跃过,可能会被 Redis Server 判定为无效连接,之后 Redis Server 会强制把这个客户端踢下线。所以,采用这种方案,客户端要有重连机制。

解决了消息处理不及时的问题,你可以再思考一下,这种队列模型,有什么缺点?

我们一起来分析一下:

  1. 不支持重复消费:消费者拉取消息后,这条消息就从 List 中删除了,无法被其它消费者再次消费,即不支持多个消费者消费同一批数据
  2. 消息丢失:消费者拉取到消息后,如果发生异常宕机,那这条消息就丢失了

第一个问题是功能上的,使用 List 做消息队列,它仅仅支持最简单的,一组生产者对应一组消费者,不能满足多组生产者和消费者的业务场景。

第二个问题就比较棘手了,因为从 List 中 POP 一条消息出来后,这条消息就会立即从链表中删除了。也就是说,无论消费者是否处理成功,这条消息都没办法再次消费了。

这也意味着,如果消费者在处理消息时异常宕机,那这条消息就相当于丢失了。

针对这 2 个问题怎么解决呢?我们一个个来看。

发布/订阅模型:Pub/Sub

从名字就能看出来,这个模块是 Redis 专门是针对「发布/订阅」这种队列模型设计的。

它正好可以解决前面提到的第一个问题:重复消费。

即多组生产者、消费者的场景,我们来看它是如何做的。

Redis 提供了 PUBLISH / SUBSCRIBE 命令,来完成发布、订阅的操作。

把 Redis 当作队列用,真的合适吗?

假设你想开启 2 个消费者,同时消费同一批数据,就可以按照以下方式来实现。

首先,使用 SUBSCRIBE 命令,启动 2 个消费者,并「订阅」同一个队列。

// 2个消费者 都订阅一个队列
127.0.0.1:6379> SUBSCRIBE queue
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "queue"
3) (integer) 1

此时,2 个消费者都会被阻塞住,等待新消息的到来。

之后,再启动一个生产者,发布一条消息。

127.0.0.1:6379> PUBLISH queue msg1
(integer) 1

这时,2 个消费者就会解除阻塞,收到生产者发来的新消息。

127.0.0.1:6379> SUBSCRIBE queue
// 收到新消息
1) "message"
2) "queue"
3) "msg1"

看到了么,使用 Pub/Sub 这种方案,既支持阻塞式拉取消息,还很好地满足了多组消费者,消费同一批数据的业务需求。

除此之外,Pub/Sub 还提供了「匹配订阅」模式,允许消费者根据一定规则,订阅「多个」自己感兴趣的队列。

// 订阅符合规则的队列
127.0.0.1:6379> PSUBSCRIBE queue.*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "queue.*"
3) (integer) 1

这里的消费者,订阅了 queue.* 相关的队列消息。

之后,生产者分别向 queue.p1 和 queue.p2 发布消息。

127.0.0.1:6379> PUBLISH queue.p1 msg1
(integer) 1
127.0.0.1:6379> PUBLISH queue.p2 msg2
(integer) 1

这时再看消费者,它就可以接收到这 2 个生产者的消息了。

127.0.0.1:6379> PSUBSCRIBE queue.*
Reading messages... (press Ctrl-C to quit)
...
// 来自queue.p1的消息
1) "pmessage"
2) "queue.*"
3) "queue.p1"
4) "msg1"

// 来自queue.p2的消息
1) "pmessage"
2) "queue.*"
3) "queue.p2"
4) "msg2"
把 Redis 当作队列用,真的合适吗?

我们可以看到,Pub/Sub 最大的优势就是,支持多组生产者、消费者处理消息。

讲完了它的优点,那它有什么缺点呢?

其实,Pub/Sub 最大问题是:丢数据

如果发生以下场景,就有可能导致数据丢失:

  1. 消费者下线
  2. Redis 宕机
  3. 消息堆积

究竟是怎么回事?

这其实与 Pub/Sub 的实现方式有很大关系。

Pub/Sub 在实现时非常简单,它没有基于任何数据类型,也没有做任何的数据存储,它只是单纯地为生产者、消费者建立「数据转发通道」,把符合规则的数据,从一端转发到另一端。

一个完整的发布、订阅消息处理流程是这样的:

  1. 消费者订阅指定队列,Redis 就会记录一个映射关系:队列->消费者
  2. 生产者向这个队列发布消息,那 Redis 就从映射关系中找出对应的消费者,把消息转发给它
把 Redis 当作队列用,真的合适吗?

看到了么,整个过程中,没有任何的数据存储,一切都是实时转发的。

这种设计方案,就导致了上面提到的那些问题。

例如,如果一个消费者异常挂掉了,它再重新上线后,只能接收新的消息,在下线期间生产者发布的消息,因为找不到消费者,都会被丢弃掉。

如果所有消费者都下线了,那生产者发布的消息,因为找不到任何一个消费者,也会全部「丢弃」。

所以,当你在使用 Pub/Sub 时,一定要注意:消费者必须先订阅队列,生产者才能发布消息,否则消息会丢失。

这也是前面讲例子时,我们让消费者先订阅队列,之后才让生产者发布消息的原因。

另外,因为 Pub/Sub 没有基于任何数据类型实现,所以它也不具备「数据持久化」的能力。

也就是说,Pub/Sub 的相关操作,不会写入到 RDB 和 AOF 中,当 Redis 宕机重启,Pub/Sub 的数据也会全部丢失。

最后,我们来看 Pub/Sub 在处理「消息积压」时,为什么也会丢数据?

当消费者的速度,跟不上生产者时,就会导致数据积压的情况发生。

如果采用 List 当作队列,消息积压时,会导致这个链表很长,最直接的影响就是,Redis 内存会持续增长,直到消费者把所有数据都从链表中取出。

但 Pub/Sub 的处理方式却不一样,当消息积压时,有可能会导致消费失败和消息丢失

这是怎么回事?

还是回到 Pub/Sub 的实现细节上来说。

每个消费者订阅一个队列时,Redis 都会在 Server 上给这个消费者在分配一个「缓冲区」,这个缓冲区其实就是一块内存。

当生产者发布消息时,Redis 先把消息写到对应消费者的缓冲区中。

之后,消费者不断地从缓冲区读取消息,处理消息。

把 Redis 当作队列用,真的合适吗?

但是,问题就出在这个缓冲区上。

因为这个缓冲区其实是有「上限」的(可配置),如果消费者拉取消息很慢,就会造成生产者发布到缓冲区的消息开始积压,缓冲区内存持续增长。

如果超过了缓冲区配置的上限,此时,Redis 就会「强制」把这个消费者踢下线。

这时消费者就会消费失败,也会丢失数据。

如果你有看过 Redis 的配置文件,可以看到这个缓冲区的默认配置:client-output-buffer-limit pubsub 32mb 8mb 60。

它的参数含义如下:

  • 32mb:缓冲区一旦超过 32MB,Redis 直接强制把消费者踢下线
  • 8mb + 60:缓冲区超过 8MB,并且持续 60 秒,Redis 也会把消费者踢下线

Pub/Sub 的这一点特点,是与 List 作队列差异比较大的。

从这里你应该可以看出,List 其实是属于「拉」模型,而 Pub/Sub 其实属于「推」模型

List 中的数据可以一直积压在内存中,消费者什么时候来「拉」都可以。

但 Pub/Sub 是把消息先「推」到消费者在 Redis Server 上的缓冲区中,然后等消费者再来取。

当生产、消费速度不匹配时,就会导致缓冲区的内存开始膨胀,Redis 为了控制缓冲区的上限,所以就有了上面讲到的,强制把消费者踢下线的机制。

好了,现在我们总结一下 Pub/Sub 的优缺点:

  1. 支持发布 / 订阅,支持多组生产者、消费者处理消息
  2. 消费者下线,数据会丢失
  3. 不支持数据持久化,Redis 宕机,数据也会丢失
  4. 消息堆积,缓冲区溢出,消费者会被强制踢下线,数据也会丢失

有没有发现,除了第一个是优点之外,剩下的都是缺点。

所以,很多人看到 Pub/Sub 的特点后,觉得这个功能很「鸡肋」。

也正是以上原因,Pub/Sub 在实际的应用场景中用得并不多。

目前只有哨兵集群和 Redis 实例通信时,采用了 Pub/Sub 的方案,因为哨兵正好符合即时通讯的业务场景。

我们再来看一下,Pub/Sub 有没有解决,消息处理时异常宕机,无法再次消费的问题呢?

其实也不行,Pub/Sub 从缓冲区取走数据之后,数据就从 Redis 缓冲区删除了,消费者发生异常,自然也无法再次重新消费。

好,现在我们重新梳理一下,我们在使用消息队列时的需求。

当我们在使用一个消息队列时,希望它的功能如下:

  • 支持阻塞等待拉取消息
  • 支持发布 / 订阅模式
  • 消费失败,可重新消费,消息不丢失
  • 实例宕机,消息不丢失,数据可持久化
  • 消息可堆积

Redis 除了 List 和 Pub/Sub 之外,还有符合这些要求的数据类型吗?

其实,Redis 的作者也看到了以上这些问题,也一直在朝着这些方向努力着。

Redis 作者在开发 Redis 期间,还另外开发了一个开源项目 disque。

这个项目的定位,就是一个基于内存的分布式消息队列中间件。

但由于种种原因,这个项目一直不温不火。

终于,在 Redis 5.0 版本,作者把 disque 功能移植到了 Redis 中,并给它定义了一个新的数据类型:Stream

下面我们就来看看,它能符合上面提到的这些要求吗?

趋于成熟的队列:Stream

我们来看 Stream 是如何解决上面这些问题的。

我们依旧从简单到复杂,依次来看 Stream 在做消息队列时,是如何处理的?

首先,Stream 通过 XADD 和 XREAD 完成最简单的生产、消费模型:

  • XADD:发布消息
  • XREAD:读取消息

生产者发布 2 条消息:

// *表示让Redis自动生成消息ID
127.0.0.1:6379> XADD queue * name zhangsan
"1618469123380-0"
127.0.0.1:6379> XADD queue * name lisi
"1618469127777-0"

使用 XADD 命令发布消息,其中的「*」表示让 Redis 自动生成唯一的消息 ID。

这个消息 ID 的格式是「时间戳-自增序号」。

消费者拉取消息:

// 从开头读取5条消息,0-0表示从开头读取
127.0.0.1:6379> XREAD COUNT 5 STREAMS queue 0-0
1) 1) "queue"
   2) 1) 1) "1618469123380-0"
         2) 1) "name"
            2) "zhangsan"
      2) 1) "1618469127777-0"
         2) 1) "name"
            2) "lisi"

如果想继续拉取消息,需要传入上一条消息的 ID:

127.0.0.1:6379> XREAD COUNT 5 STREAMS queue 1618469127777-0
(nil)

没有消息,Redis 会返回 NULL。

把 Redis 当作队列用,真的合适吗?

以上就是 Stream 最简单的生产、消费。

这里不再重点介绍 Stream 命令的各种参数,我在例子中演示时,凡是大写的单词都是「固定」参数,凡是小写的单词,都是可以自己定义的,例如队列名、消息长度等等,下面的例子规则也是一样,为了方便你理解,这里有必要提醒一下。

下面我们来看,针对前面提到的消息队列要求,Stream 都是如何解决的?

1) Stream 是否支持「阻塞式」拉取消息?

可以的,在读取消息时,只需要增加 BLOCK 参数即可。

// BLOCK 0 表示阻塞等待,不设置超时时间
127.0.0.1:6379> XREAD COUNT 5 BLOCK 0 STREAMS queue 1618469127777-0

这时,消费者就会阻塞等待,直到生产者发布新的消息才会返回。

2) Stream 是否支持发布 / 订阅模式?

也没问题,Stream 通过以下命令完成发布订阅:

  • XGROUP:创建消费者组
  • XREADGROUP:在指定消费组下,开启消费者拉取消息

下面我们来看具体如何做?

首先,生产者依旧发布 2 条消息:

127.0.0.1:6379> XADD queue * name zhangsan
"1618470740565-0"
127.0.0.1:6379> XADD queue * name lisi
"1618470743793-0"

之后,我们想要开启 2 组消费者处理同一批数据,就需要创建 2 个消费者组:

// 创建消费者组1,0-0表示从头拉取消息
127.0.0.1:6379> XGROUP CREATE queue group1 0-0
OK
// 创建消费者组2,0-0表示从头拉取消息
127.0.0.1:6379> XGROUP CREATE queue group2 0-0
OK

消费者组创建好之后,我们可以给每个「消费者组」下面挂一个「消费者」,让它们分别处理同一批数据。

第一个消费组开始消费:

// group1的consumer开始消费,>表示拉取最新数据
127.0.0.1:6379> XREADGROUP GROUP group1 consumer COUNT 5 STREAMS queue >
1) 1) "queue"
   2) 1) 1) "1618470740565-0"
         2) 1) "name"
            2) "zhangsan"
      2) 1) "1618470743793-0"
         2) 1) "name"
            2) "lisi"

同样地,第二个消费组开始消费:

// group2的consumer开始消费,>表示拉取最新数据
127.0.0.1:6379> XREADGROUP GROUP group2 consumer COUNT 5 STREAMS queue >
1) 1) "queue"
   2) 1) 1) "1618470740565-0"
         2) 1) "name"
            2) "zhangsan"
      2) 1) "1618470743793-0"
         2) 1) "name"
            2) "lisi"

我们可以看到,这 2 组消费者,都可以获取同一批数据进行处理了。

这样一来,就达到了多组消费者「订阅」消费的目的。

把 Redis 当作队列用,真的合适吗?

3) 消息处理时异常,Stream 能否保证消息不丢失,重新消费?

除了上面拉取消息时用到了消息 ID,这里为了保证重新消费,也要用到这个消息 ID。

当一组消费者处理完消息后,需要执行 XACK 命令告知 Redis,这时 Redis 就会把这条消息标记为「处理完成」。

// group1下的 1618472043089-0 消息已处理完成
127.0.0.1:6379> XACK queue group1 1618472043089-0
把 Redis 当作队列用,真的合适吗?

如果消费者异常宕机,肯定不会发送 XACK,那么 Redis 就会依旧保留这条消息。

待这组消费者重新上线后,Redis 就会把之前没有处理成功的数据,重新发给这个消费者。这样一来,即使消费者异常,也不会丢失数据了。

// 消费者重新上线,0-0表示重新拉取未ACK的消息
127.0.0.1:6379> XREADGROUP GROUP group1 consumer1 COUNT 5 STREAMS queue 0-0
// 之前没消费成功的数据,依旧可以重新消费
1) 1) "queue"
   2) 1) 1) "1618472043089-0"
         2) 1) "name"
            2) "zhangsan"
      2) 1) "1618472045158-0"
         2) 1) "name"
            2) "lisi"

4) Stream 数据会写入到 RDB 和 AOF 做持久化吗?

Stream 是新增加的数据类型,它与其它数据类型一样,每个写操作,也都会写入到 RDB 和 AOF 中。

我们只需要配置好持久化策略,这样的话,就算 Redis 宕机重启,Stream 中的数据也可以从 RDB 或 AOF 中恢复回来。

5) 消息堆积时,Stream 是怎么处理的?

其实,当消息队列发生消息堆积时,一般只有 2 个解决方案:

  1. 生产者限流:避免消费者处理不及时,导致持续积压
  2. 丢弃消息:中间件丢弃旧消息,只保留固定长度的新消息

而 Redis 在实现 Stream 时,采用了第 2 个方案。

在发布消息时,你可以指定队列的最大长度,防止队列积压导致内存爆炸。

// 队列长度最大10000
127.0.0.1:6379> XADD queue MAXLEN 10000 * name zhangsan
"1618473015018-0"

当队列长度超过上限后,旧消息会被删除,只保留固定长度的新消息。

这么来看,Stream 在消息积压时,如果指定了最大长度,还是有可能丢失消息的。

除了以上介绍到的命令,Stream 还支持查看消息长度(XLEN)、查看消费者状态(XINFO)等命令,使用也比较简单,你可以查询官方文档了解一下,这里就不过多介绍了。

好了,通过以上介绍,我们可以看到,Redis 的 Stream 几乎覆盖到了消息队列的各种场景,是不是觉得很完美?

既然它的功能这么强大,这是不是意味着,Redis 真的可以作为专业的消息队列中间件来使用呢?

但是还「差一点」,就算 Redis 能做到以上这些,也只是「趋近于」专业的消息队列。

原因在于 Redis 本身的一些问题,如果把其定位成消息队列,还是有些欠缺的。

到这里,就不得不把 Redis 与专业的队列中间件做对比了。

下面我们就来看一下,Redis 在作队列时,到底还有哪些欠缺?

与专业的消息队列对比

其实,一个专业的消息队列,必须要做到两大块:

  1. 消息不丢
  2. 消息可堆积

前面我们讨论的重点,很大篇幅围绕的是第一点展开的。

这里我们换个角度,从一个消息队列的「使用模型」来分析一下,怎么做,才能保证数据不丢?

使用一个消息队列,其实就分为三大块:生产者、队列中间件、消费者

把 Redis 当作队列用,真的合适吗?

消息是否会发生丢失,其重点也就在于以下 3 个环节:

  1. 生产者会不会丢消息?
  2. 消费者会不会丢消息?
  3. 队列中间件会不会丢消息?

1) 生产者会不会丢消息?

当生产者在发布消息时,可能发生以下异常情况:

  1. 消息没发出去:网络故障或其它问题导致发布失败,中间件直接返回失败
  2. 不确定是否发布成功:网络问题导致发布超时,可能数据已发送成功,但读取响应结果超时了

如果是情况 1,消息根本没发出去,那么重新发一次就好了。

如果是情况 2,生产者没办法知道消息到底有没有发成功?所以,为了避免消息丢失,它也只能继续重试,直到发布成功为止。

生产者一般会设定一个最大重试次数,超过上限依旧失败,需要记录日志报警处理。

也就是说,生产者为了避免消息丢失,只能采用失败重试的方式来处理。

但发现没有?这也意味着消息可能会重复发送。

是的,在使用消息队列时,要保证消息不丢,宁可重发,也不能丢弃。

那消费者这边,就需要多做一些逻辑了。

对于敏感业务,当消费者收到重复数据数据时,要设计幂等逻辑,保证业务的正确性。

从这个角度来看,生产者会不会丢消息,取决于生产者对于异常情况的处理是否合理。

所以,无论是 Redis 还是专业的队列中间件,生产者在这一点上都是可以保证消息不丢的。

2) 消费者会不会丢消息?

这种情况就是我们前面提到的,消费者拿到消息后,还没处理完成,就异常宕机了,那消费者还能否重新消费失败的消息?

要解决这个问题,消费者在处理完消息后,必须「告知」队列中间件,队列中间件才会把标记已处理,否则仍旧把这些数据发给消费者。

这种方案需要消费者和中间件互相配合,才能保证消费者这一侧的消息不丢。

无论是 Redis 的 Stream,还是专业的队列中间件,例如 RabbitMQ、Kafka,其实都是这么做的。

所以,从这个角度来看,Redis 也是合格的。

3) 队列中间件会不会丢消息?

前面 2 个问题都比较好处理,只要客户端和服务端配合好,就能保证生产端、消费端都不丢消息。

但是,如果队列中间件本身就不可靠呢?

毕竟生产者和消费这都依赖它,如果它不可靠,那么生产者和消费者无论怎么做,都无法保证数据不丢。

在这个方面,Redis 其实没有达到要求。

Redis 在以下 2 个场景下,都会导致数据丢失。

  1. AOF 持久化配置为每秒写盘,但这个写盘过程是异步的,Redis 宕机时会存在数据丢失的可能
  2. 主从复制也是异步的,主从切换时,也存在丢失数据的可能(从库还未同步完成主库发来的数据,就被提成主库)

基于以上原因我们可以看到,Redis 本身的无法保证严格的数据完整性

所以,如果把 Redis 当做消息队列,在这方面是有可能导致数据丢失的。

再来看那些专业的消息队列中间件是如何解决这个问题的?

像 RabbitMQ 或 Kafka 这类专业的队列中间件,在使用时,一般是部署一个集群,生产者在发布消息时,队列中间件通常会写「多个节点」,以此保证消息的完整性。这样一来,即便其中一个节点挂了,也能保证集群的数据不丢失。

也正因为如此,RabbitMQ、Kafka在设计时也更复杂。毕竟,它们是专门针对队列场景设计的。

但 Redis 的定位则不同,它的定位更多是当作缓存来用,它们两者在这个方面肯定是存在差异的。

最后,我们来看消息积压怎么办?

4) 消息积压怎么办?

因为 Redis 的数据都存储在内存中,这就意味着一旦发生消息积压,则会导致 Redis 的内存持续增长,如果超过机器内存上限,就会面临被 OOM 的风险。

所以,Redis 的 Stream 提供了可以指定队列最大长度的功能,就是为了避免这种情况发生。

但 Kafka、RabbitMQ 这类消息队列就不一样了,它们的数据都会存储在磁盘上,磁盘的成本要比内存小得多,当消息积压时,无非就是多占用一些磁盘空间,相比于内存,在面对积压时也会更加「坦然」。

综上,我们可以看到,把 Redis 当作队列来使用时,始终面临的 2 个问题:

  1. Redis 本身可能会丢数据
  2. 面对消息积压,Redis 内存资源紧张

到这里,Redis 是否可以用作队列,我想这个答案你应该会比较清晰了。

如果你的业务场景足够简单,对于数据丢失不敏感,而且消息积压概率比较小的情况下,把 Redis 当作队列是完全可以的。

而且,Redis 相比于 Kafka、RabbitMQ,部署和运维也更加轻量。

如果你的业务场景对于数据丢失非常敏感,而且写入量非常大,消息积压时会占用很多的机器资源,那么我建议你使用专业的消息队列中间件。

总结

好了,总结一下。这篇文章我们从「Redis 能否用作队列」这个角度出发,介绍了 List、Pub/Sub、Stream 在做队列的使用方式,以及它们各自的优劣。

之后又把 Redis 和专业的消息队列中间件做对比,发现 Redis 的不足之处。

最后,我们得出 Redis 做队列的合适场景。

这里我也列了一个表格,总结了它们各自的优缺点。

把 Redis 当作队列用,真的合适吗?

后记

最后,我想和你再聊一聊关于「技术方案选型」的问题。

你应该也看到了,这篇文章虽然始于 Redis,但并不止于 Redis。

我们在分析 Redis 细节时,一直在提出问题,然后寻找更好的解决方案,在文章最后,又聊到一个专业的消息队列应该怎么做。

其实,我们在讨论技术选型时,就是一个关于如何取舍的问题。

而这里我想传达给你的信息是,在面对技术选型时,不要不经过思考就觉得哪个方案好,哪个方案不好

你需要根据具体场景具体分析,这里我把这个分析过程分为 2 个层面:

  1. 业务功能角度
  2. 技术资源角度

这篇文章所讲到的内容,都是以业务功能角度出发做决策的。

但这里的第二点,从技术资源角度出发,其实也很重要。

技术资源的角度是说,你所处的公司环境、技术资源能否匹配这些技术方案

这个怎么解释呢?

简单来讲,就是你所在的公司、团队,是否有匹配的资源能 hold 住这些技术方案。

我们都知道 Kafka、RabbitMQ 是非常专业的消息中间件,但它们的部署和运维,相比于 Redis 来说,也会更复杂一些。

如果你在一个大公司,公司本身就有优秀的运维团队,那么使用这些中间件肯定没问题,因为有足够优秀的人能 hold 住这些中间件,公司也会投入人力和时间在这个方向上。

但如果你是在一个初创公司,业务正处在快速发展期,暂时没有能 hold 住这些中间件的团队和人,如果贸然使用这些组件,当发生故障时,排查问题也会变得很困难,甚至会阻碍业务的发展。

而这种情形下,如果公司的技术人员对于 Redis 都很熟,综合评估来看,Redis 也基本可以满足业务 90% 的需求,那当下选择 Redis 未必不是一个好的决策。

所以,做技术选型不只是技术问题,还与人、团队、管理、组织结构有关

也正是因为这些原因,当你在和别人讨论技术选型问题时,你会发现每个公司的做法都不相同。

毕竟每个公司所处的环境和文化不一样,做出的决策当然就会各有差异。

如果你不了解这其中的逻辑,那在做技术选型时,只会趋于表面现象,无法深入到问题根源。

而一旦你理解了这个逻辑,那么你在看待这个问题时,不仅对于技术会有更加深刻认识,对技术资源和人的把握,也会更加清晰。

希望你以后在做技术选型时,能够把这些因素也考虑在内,这对你的技术成长之路也是非常有帮助的。

转自:https://mp.weixin.qq.com/s/l1dMnu6laOLm375mMxy3WQ

一线城市,房价的本质

作者:财爷来源:魔都财观(ID:moducaiguan)

如果你最近一直关注楼市新闻,最近应该很抓狂。

8月6日上海执行银行贷款“三价孰低”的政策,从贷款层面收紧,直接打在了7寸上,非常的厉害。

其实楼市成交就是有周期的,每隔几年都会进入静淡市。

哪怕没有这样的调控政策,到了今年下半年,前期的购买力也消耗的差不多了,整体的成交量也会下滑,这很正常。

在当下这样的时间里,其实说实话,如果你没有对买房这件事的深刻认知和坚定信心,你很快就会放弃。

在我们看来,楼市短期回撤和长期做多,并不矛盾。

相反地,我们暗自庆幸,每一次调整都给我们一个更合适的机会,特别是对于置换客和真正的自住客户来说。

我们今天从一个长远的趋势来聊聊一线城市特别是上海的房价。01

首先,从底层原因来看,一线城市的房价上涨,最大的推手其实是人的欲望。

1994年之前,地方富中央穷,于是在1994年出台二楼分税制,分税制的核心在于容易收的税种划归为国家,不容易收的税种归地方,大头归国家,小头归地方。

也正是因为这样的分税制度,导致了地方财政上的困难。

于是地方政府想要资金,一般来说只有两个渠道,一是打硬仗,就是招商引资,拉动就业增加税收从而可以补充地方财政。

另一个办法就是卖地,这事最省心省力,卖地后,地方政府就可以以一种最快速的方法盖大楼,修马路,搞基建。

当然,大量卖地带来的后果就是中国很多乡镇的房子都开始慢慢增多起来。

根据贝壳研究院发布的《住房研究报告》,在2019年,我国城镇住宅存量3.5亿套,每个家庭平均1.2套,人均面积40平方米,超过了绝大部分发达国家。

所以说,如果你不是在一二线城市的话,如果你只是单纯的想要买套房住,从供应量看是完全够的。

只是对于很多人来说,要的是一二线城市的房子,而且,最好还是中内环的。

当然,去好的城市,往好的地段买,是全世界人民的共同目标。

所以我们看到,对于很多国家而言,因为他们本身的国土面积不是很大,所以表现出来的就是它们的首都涨幅这几年会很明显。

比如韩国首尔和日本东京,整体的人口总规模就越来越大。

1970年首尔都市圈的人口比重占总人口的28.7%,1980年为35.5%,1990年为42.8%,2000年为46.3%, 2010年为49.2%,2019年为50.0%,50年期间增加了21.3%。

日本的东京都市圈,又称首都圈,是以东京市区为中心半径80公里的区域。

由东京都、神奈川县、千叶县等一都七县共同组成的东京都市圈,面积3.69万平方公里(相当于2.25个北京),约占国土面积的10%,人口总数却达到了4378万,占日本人口总数的1/3以上,贡献了日本40%的GDP。

从2010年-2015年,日本全国的人口总数从1.28亿减少到了1.27亿,减少了0.78%,但同时期东京特别行政区的人口的增速却达到了4.87%。

所以对于这些国家而言,人口占比最多,流入最多的首都,就是这些国家的核心区域。

对于整个中国而言,未来就是处于城市的分化阶段,三个单核城市会发展的特别好。

北京、上海、深圳作为北部、东部、南部三个区域领头羊,常住人口一定会越来越多,人口和房产的供需会发生失衡。

二八分化的结果在未来的十几年的房价变化中,会越来越明显。

20%的城市会涨上天,越来越多的人买不起,80%的城市房价会就是不升值。

其实这样的趋势目前开始慢慢发生了,肉眼可见。02

相比于深圳,上海的杠杆率是非常低的,上海的楼市也是非常安全的。

从2019年城市居民的杠杆率看,上海的杠杆率排名只有第13名,远低于杭州、温州、厦门、深圳,甚至连西安和福州的杠杆率都比上海高。

图片

低杠杆率意味着极少的泡沫,意味着一旦受到政策的挤压,没有那么多的回调空间。

也正是因为这样的原因,所以如果是相同的政策调控,深圳、杭州、温州等城市的房价整体回来的原因要比上海来的更加剧烈些。

目前的时代,处于激烈的对抗期,左手热钱,右手楼市调控,左右手开展了史无前例的PK。

一方面是热钱实在太多了,暗流涌动。

从2020年3月到现在,为了应对疫情带来的经济下滑,全球各国的印钞量,已经赶超2008年之前的5000年文明史的印钞总和。

9个月,抵得上过去5000年,这简直是货币的汪洋大海!

导致的最直接的后果就是:多国房价再创新高,而且,哪怕是加息,也很难抵抗首尔、东京、纽约、墨尔本等多国房价的上涨!

图片

2020年,全球89%的国家房价都处于上涨状态。

所以,这就是为什么对于中国而言,2021年的经济工作中很重要的一件事项就是防范输入型的通货膨胀。

按照当下的局面,如果不做任何政策性的干预,一二线城市的房价上涨将面临巨大的压力。

特别像上海这样的国家经济中心,是国家金融体系中最重要的一环,每一次热钱的涌入,第一站往往都是上海。

当下不管是国内还是国外,市场上整体的热钱是比较多的。

面对越来越多的不确定性,面对不那么景气的股市,楼市依然就像一个避风港一样。

如果有人拿1000万现金毫不犹豫的杀入楼市买套房产,我们会觉得不是啥问题,很正常。

但如果有人拿1000万现金杀入股市说要博一博,我们会觉得这人脑子有病。

站在当下的时间节点,我觉得每一个人都必须得有一个清醒的认知。

房子确实不是用来炒的,房子是用来对抗通货膨胀的。

我们前期经常会说,当下是一个全面调控时代,2-3年会是一座城市的小周期,5年大概会是一个大周期。

调控就像缓慢的刹车一样,只能降低列车的行驶速度,不能让列车完全不动或是倒退。

所以调控的本质是降低房价上涨的速度,让更多还没有买的起房的人抓紧上车。

这其实也符合共同富裕的内在要求。03

上海有着自己的野心。

2020年给自己定下的flag是到2035年,也就是15年后:

成为卓越的全球城市、具有世界影响力的社会主义现代化国际大都市。

我们再来横向对比下全球其他几个现代化国际大都市的房价:

上海当下市中心的房价9.79万、伦敦的房价是9.8万、纽约是10.7万、新加坡是13.6万、香港是21.65万。

上海的房价已经接近伦敦、纽约,目前正在向首尔、新加坡等看齐。

图片

最近几年,香港的名义房价已超过97年顶部时的47%,貌似现在的泡沫很大。

但只可惜人地矛盾依然没有得到很好的解决,供需严重失衡,房价依然非常坚挺。

图片

另外,97年以来纽约房价累计上涨达到了127%,对于这样的世界级城市来说,这样的房价涨幅其实依然是属于正常范围。

图片

现在香港房价是纽约的2.02倍,而97年香港房价是纽约的2.8倍。

这样的锚定价格在人类历史上也是罕见的,97年的香港房价的确是真正的世纪大顶!

而如果我们对比下当下的上海市中心的房价,是香港的四五折,但整体的空间和增长潜力要远远高于香港。

上海的人口是香港的3.1倍,人均GDP和可支配收入仅有香港的一半左右。

随着一线经济结构从制造业迈向高端服务业,人均收入增长空间很大。

上海人均住房面积远大于香港,未来可压缩的空间还有大潜力(所谓香港千尺豪宅只有93平米,这在内环也就是一套普通2房)。

所以,当很多时候我们感到迷茫的时候,就要学会用对比的眼光去看待,通过对比通过剖析,我们能隐约预判未来。04

请大家记住一句话,当社会发展到一定程度的时候,资本增值往往会高于劳动力增值。

一线城市,往往沉淀着最多的资本。

城市越发达,资本属性也就越强,有钱人也就越多。

而一个残酷的现实就是,城市的房价往往是由社会中20%的人决定的。

一线城市一方面是在吸引人才源源不断的进来;

另一方面,也通过高房价这样的筛选机制,淘汰掉一批人,只保留那些能在一线城市获得最大收益的人群。

所以为什么你会感到买不起房,感觉自己不吃不喝20年都买不起。

造成这样一个现象的原因很简单,随着价格的升高,房产已经逐渐脱离使用属性,金融属性在增强。

也就是说一线地产已经不再是每个人都能买得起的商品,而是一种投资资产和稀缺消费品。

我们看到一线豪宅购买的主力是来自全国的土豪,客群更加丰富,2020年上海豪宅整体的成交量也出现了较多的增长,如果按照价位段划分的话:

  • 1000万-2000万,成交7994套,同比增长38%;
  • 2000万-3000万,成交了1583套,同比增长3%;
  • 3000万-5000万,成交了971套,同比增长33%;
  • 5000万以上,成交了256套,同比增长117%。

一线城市的房价往往不是由本地购买力决定的,而是由全国购买力决定的。


一般来说房产的向上购买规律是这样的。

三四线城市的人民购买当地的市中心,而市中心人民会购买本省的强资源城市(比如省会城市或经济中心城市);


而强资源城市的人民会购买一线城市,一线城市人民购买核心地段,核心地段人民在全球范围内寻找最优的资产配置方案。


高铁路网越发达,从小城市到大城市的人群迁移规模也越来越加剧。

所以说高铁这张网对于长三角和粤港澳这些城市群而言,其实给上海、广州、深圳提供了源源不断的购买力。
05

我国供给侧改革越来越深入,形成高科技创新为代表的新增长点,并通过培育中产阶级和消费拉动经济,社会阶层演化成类似于美国的中间层大,两头小的纺锤体式结构。

一句话总结就是,中产阶级的人群规模会越来越庞大。

最近半年以来,上海上半年上海人才落户和居转户这两个渠道落户0.65万人,刷新了有史以来单月落户人数的新记录,而上半年一共落了3.34万人,是去年同期的2.7倍!

按照这个速度下去,仅仅是居转户和人才引进这两个落户渠道,今年就将诞生7万个新上海人家庭。

这7万个家庭所产生的自住需求,不可小觑。

所以我们反复跟大家说,上海房价的定价权不在上海人手中,而是在新上海人手中,而上海人和新上海人对于顶级地段的看法是不同的。

上海人眼中的顶级地段,就是原法租界范围,加上老静安、古北、西郊,这几个地方被视为“上只角”。

新上海人眼中的顶级地段,是黄浦江两岸,特别是以陆家嘴为中心的核心滨江沿线(陆家嘴滨江、黄浦滨江、北外滩),核心滨江与“上只角”对等。

另外,新上海人还有一些偏好的新兴地界,如联洋、前滩、张江,这些称不上最顶级地段,但购房人却趋之若鹜,区域的认同感非常高。

当下的阶段,楼市政策确实不明朗,但其实我并不焦虑。

因为一线城市并不缺购买力,一线城市承载的历史使命也注定了城市的未来一定会越来越美好。

调控政策的不断加强,其实是在强调一件事:

房产已经不能再作为短期炒作的工具,买房这样的行为,当你下注的那刻起,就意味着要与这个城市共同长期发展。

如果把城市看做是上市公司,你是投资人的话,坚持长远的价值投资,或许是我们能跑赢大盘的最佳策略。

很显然,相比于三四线,我们对于上海的未来,更有信心。

转自:https://mp.weixin.qq.com/s/3aaP0WcW7qCgPzb6PP_HBQ

互联网大佬,嗅到不寻常信号

大约半年前,在研究一个知名富豪的时候,我曾在文章中写下这样一段话。

在中国,民营企业家要做到首富的位置,需要历经万千考验——

一要处理好与权力的关系。

二要时刻做足功课,读懂政治。

三要押上全部身家,赌对国运。

如今来看,这些话依旧适用。在时代的剧变面前,总有人能先一步嗅到信号。

1

互联网巨头,感受到时代的召唤

共同富裕的气息,真的是越来越浓了。

就在昨天(9月2日),阿里巴巴传来消息,称已经启动“助力共同富裕十大行动”,将在2025年前累计投入1000亿元,助力共同富裕。

这个数字应该超出了绝大多数人的认知范畴,根本没概念。我们做个参照,阿里在2020财年的净利润大概是1500个亿,西藏2020年的GDP大概是1900个亿。拿出大半年的利润,阿里这回确实下了血本。

互联网大佬,嗅到不寻常信号

我看了一下,这1000亿的用途基本上是围绕科技、中小微企业、就业等展开的,换句话说,都是如今政策鼓励的方向。

仅仅半年前,阿里还是“反垄断”的典型对象,一度被罚款182个亿。这个转变,透着满满的求生欲。

不只是阿里,早些时候,在投入500亿启动“可持续社会价值创新”战略后,腾讯于8月18日宣布再增500亿元资金,启动“共同富裕专项计划”,在乡村振兴、低收入人群增收、教育均衡发展等领域提供助力。

互联网大佬,嗅到不寻常信号

还有拼多多。8月24日,拼多多宣布专门设立100亿元农业科技专项,说要推动农业科技进步,实现科技普惠。

互联网大佬,嗅到不寻常信号

转瞬之间,中国的几大互联网巨头,成为了“共同富裕”的排头兵。

当这些巨头在抢着捐钱的时候,有一些企业,选择了另辟蹊径。

上个月,美团发布财报,CEO王兴在会上说出了一番有意思的话:

“美团这个名字里有两个字,‘美’意味着‘好’,‘团’意味着‘一起’、‘共同’,所以‘美’和‘团’合起来就是‘一起更好’。也就是说‘共同富裕’本身就根植于美团的基因之中”。

互联网大佬,嗅到不寻常信号

看到王兴的解释,我只想感慨中国文字的博大精深。这种“共同富裕”体,很快就在网络世界蔓延开来。

58集团CEO姚劲波说:“58同城,确实是来自:我们一起发,共同富裕。”

荔枝的CEO赖奕龙,更是使出浑身解数,谐音梗、典故、古诗词都用上了。

这让我感到一阵恍惚:一夜之间,互联网巨头们都在自己的名字里找到了“共同富裕”,都成了幸福的代言人?

互联网大佬,嗅到不寻常信号

我怎么记得,仅仅几个月前,在网友的眼里,他们还是放贷、收租、占据数字山头的众矢之的?

风向已经悄悄变了,互联网巨头们,嗅到了不寻常的信号。

2

风来了

风向变了,是因为更大的风来了。

关于共同富裕,近期大家可以感知的,至少有两个事件。

一个是6月10日,《中共中央 国务院关于支持浙江高质量发展建设共同富裕示范区的意见》正式发布,浙江被赋予重要的改革意义——

到2025年,浙江省推动高质量发展建设共同富裕示范区取得明显实质性进展。到2035年,浙江省高质量发展取得更大成就,基本实现共同富裕。

互联网大佬,嗅到不寻常信号

另一个,就在2021年8月17日,中央财经委员会第十次会议召开,释放的信息非常关键:

在高质量发展中促进共同富裕,正确处理效率和公平的关系。

构建初次分配、再分配、三次分配协调配套的基础性制度安排。

扩大中等收入群体比重,增加低收入群体收入,合理调节高收入,取缔非法收入,形成中间大、两头小的橄榄型分配结构。

透过这些话语,我看到了两个字:公平。在这其中,很多人第一次听到这样一个词:三次分配。

互联网大佬,嗅到不寻常信号

初次分配靠市场,再分配靠政府,第三次分配,靠的是自觉。一个经典的例子,就是慈善。

相比于市场根据要素贡献进行的初次分配、政府通过国家意志进行的再分配,第三次分配是社会主体自主自愿参与的财富流动。

这两个事件,指向了同一个信号:共同富裕的脚步,真的越来越近了。

更深入来看,最近发生的一系列事件,好像都能串起来。此中的玄妙,就藏在8月17日中央财经委员会的第十次会议里。

我把会议内容翻来覆去看了好几遍,越看,越觉得不简单。这个会议里,释放了几个重要信息:

其一,明确了未来的经济发展方向,就是要实现共同富裕。

经济发展的天平,已经从效率滑向了公平一端。要公平,所以有了反垄断,有了打击学区房,打击课外培训。一切有害于公平的事情,都要得到遏制和纠正。

其二,高质量发展。

什么是高质量发展?就是高科技、硬科技、新能源、新基建、大数据、人工智能、先进制造业等等。造袜子、手套,哪怕造到全球第一,也是无法支撑共同富裕的。

其三,缩小贫富差距。

社会发展到现在,马太效应不可避免。我们的下一个目标,就是要形成中间大、两头小的橄榄型分配结构,减小差距。这样的社会里,穷人少,富人少,中产阶级占社会绝大多数。

要实现这一点,只能通过分配。初次分配、再分配不够用,还得要三次分配。

由此一来,房产税、遗产税、资本利得税……都将一个个到来。

其四,量力而行,循序渐进。

直接发钱,让大家都成为百万富翁,这是不现实的,也不是共同富裕的真正目的。

如果没有产业发展作为支撑,这一切都是空中楼阁,只会让我们的社会走向高福利的深渊。

所以,要鼓励勤劳致富,创新致富,畅通向上流动通道,给更多人创造致富机会。

毫不夸张地说,未来15年的方向,这个会议都说清楚了。

风的方向,就藏在其中。

3

差距,不能无限扩大 

共同富裕的哨声之所以急迫,很重要的一个原因是,我们的贫富差距,越来越大了。

就在2021年5月,新财富500富人榜发布,除了卖矿泉水的钟睒睒成为新首富之外,人们还惊讶地发现:

全球疫情如此严峻的情况下,这个榜单的门槛和总财富规模不仅没有下降,反而在暴涨。

其中,500人总财富暴涨7成,从10万亿元跃升至17万亿元。疫情下,有钱人,还更有钱了。

互联网大佬,嗅到不寻常信号

《中国家庭财富指数调研报告》也显示:今年一季度,超过50%的金融资产或年收入5万及以下的家庭财富在减少。

而19%的金融资产300万以上,或32.4%的年收入100万以上的家庭,财富反而在增加。

银行的数据也在验证这个迹象。

招商银行个人客户存款数据显示,不到2%的个人客户(金葵花)占有总财富近50%。另有不到0.06%的个人客户(私人银行)占有总财富近30%。

根据官方数据,2019年全国人均存款为5.87万元,其中5.6亿人的存款数额为零。私人银行客户和金葵花客户的人均金融资产分别为2731.66万元和150.20万元,是全国人均存款的465倍和25倍。

6亿人每个月的收入也就1000元,真实存在。

差距早已扩大。2019年10月,中国人民银行调查统计司对中国城镇家庭的资产负债情况进行了专项调查。在这份调查里,有几个数据令人震动:

中国最富有的10%家庭,他们拥有的资产加起来,占到全社会总资产的47.5%。前20%家庭的资产加起来,占到社会总资产比例的63%。

而底层那20%的家庭,资产加起来仅仅为社会总资产的2.6%。

互联网大佬,嗅到不寻常信号

这种差距,还体现在区域之间,参与调查的30个省份里,有8个在平均线以上,其余22个省市全在平均线以下。北京的户均家庭资产,是新疆的7倍。

下面这张图,就是当下最真实的写照。

互联网大佬,嗅到不寻常信号

如果任由这种差距拉大,后果是不堪设想的。这一点,西方国家已经给出过答案。

19世纪末,经由工业化和都市化,美国社会的整体财富实现了飞跃,但财富的集中度和财富不平等也发展到了顶峰:

1896年,美国最富有的1%人口拥有50%以上的财富,而44%的底层人口只拥有国民财富的7.2%。

那时候,在全美16个大城市中,1/10的人居住在贫民窟中。在纽约市,贫民窟居住人口居然达到了全市总人口的2/3。

互联网大佬,嗅到不寻常信号

巨大的贫富差距下,越来越多的问题开始在美国社会产生。失业、罢工、动荡……甚至加菲尔德、威廉·麦金利两任美国总统也相继被刺杀。

在这样的背景下,美国才开始改革、反腐、反垄断、向富豪征税、推动公平正义。

这样的教训,值得铭记。

4

尾声

沿着“共同富裕”这条主线,我们能看见两个大字:公平。

从经济角度来说,公平这杆秤,既要防止“富者愈富”,也要避免“穷者愈穷”。无论是财富还是阶层,都应该是流动的。

所以,我们可以看到,过去那些暴富的行业,房地产、互联网、娱乐圈……都得到了整顿。在当下的中国,6.1亿人月均收入不到1000元;但在娱乐圈,有人一天就能到手208万;没演技没人品,却坐拥亿万。

我们也可以看到,教育行业大地震、课外培训被团灭、学区房被压制……一个个阻塞的关口被打通,这是让更多人能看到希望。

同样,就在昨天(9月2日),最高层重磅发话,北京证券交易所终于要来了。不难想象,更多的中小企业,更多的“专精特新”,将分享到更多的资本机会。

先富起来的资本帮助后跑起来的企业,这本身就是共同富裕。

当然,还有一个问题:打压垄断、扶持落后,意味着“劫富济贫”吗?

当然不是。按照目前的发展水平,我们追求的共同富裕,只能是存在一定差距的共同富裕,而不是整齐划一的同等富裕。正如中央财办副主任韩文秀所说——

共同富裕要靠共同奋斗,不是全民福利,不是杀富济贫,更不是养懒汉。

目前,中国的人均GDP才刚超过1万美元,而纵观欧美那些发达国家,人均GDP基本上都是我们的3倍以上,美国的人均GDP更是达到了6万美元。

共同富裕的第一步,不是急着分蛋糕,而是先把蛋糕做大。

这一点,最重要。

转自:https://mp.weixin.qq.com/s/2wJiA47eZWGWo02p6_8Cdg