Redis之父:我可不止是一只码农

Redis 之父antirez亲自上手用大模型撸代码:将来可以取代 99% 程序员 相信每一位跟大模型经常打交道的朋友,都能在理解它们局限性的同时,感受到其中体现出的推理之力:它们对以往接触过的内容的融合能力,远远超出了随机输出单词的范畴。如今有了大语言模型,我可以非常轻松地编写出使用 Torch 的 Python 代码,唯一的前提就是对想要组合的模型拥有清晰的思路、同时能够提出正确的问题。最后,希望大家能够积极拥抱大模型,尝试用它解决编程中的各种问题。如果能够更进一步,在接触过的所有代码围成的空间当中进行连续插值,那么大模型哪怕无法创造出真正新奇的事物,也足以取代 99% 的程序员。 阅读详情

d8786588212c2c732e5c2424404877cc.jpeg

一年前我暂停了写代码后开始尝试写科幻小说时,以为这是两条完全不一样的路子。随着写的文字越来越多,不断的推倒重写那也是家常便饭了。我现在总算非常确定了,撸一个大系统和写一本小说本质上其实差不太多,它们之间那是非常相似的。【这里我们允许 Antirez 凡尔赛一把】

One year ago I paused my programming life and started writing a novel, with the illusion that my new activity was deeply different than the previous one. A river of words later, written but more often rewritten, I’m pretty sure of the contrary: programming big systems and writing novels have many common traits and similar processes.

最显而易见的共同之处,那就是这两种活都是在搬砖,一个是搬代码,一个是搬单词。代码当然不是用自然语言编写的,但是它同样也有自己的语法规则,这种规则一般只有程序员自己能懂,对外行人来说那就两眼一抹黑啦。

The most obvious parallel between the two activities is that in both of them you write something. Code is not prose written in a natural language, yet it has a set of fixed rules (a grammar), certain forms that most programmers will understand as natural and others that, while formally correct, will sound hard to grasp.

如果再深入一点,你会发现写小说跟写代码一样,都是在摆弄各种全局和局部变量,让它们在一起协作好。好的代码是由一系列精妙易读的语句组成【微观】,整体上不同的组件之间是尽可能正交解耦的,交互的边界非常清晰【宏观】。好的小说在微观和宏观这两个尺度上也是一样的,每个句子都要写的很漂亮,全局的层次结构和文章脉络同样也很关键。

There is, however, a much deeper connection between the two activities: a good program and a good novel are both the sum of local and global elements that work well. Good code must be composed of well written and readable single statements, but overall the different parts of the program must be orthogonal, designed in a coherent way, and have clean interactions. A good novel must also succeed in the same two scales of the micro and the macro. Sentences must be well written, but the overall structure and relationship between the parts is also crucial.

代码和小说之间还有一个不那么明显的相通之处,那就是你需要持续不断往前走以追究极致,它们并不是很轻松自然而然就写出来的。关于这一点,二十多年的代码生涯帮我很大,我知道我必须夜以继日的写,今天也许是写了 100 字,明天也许会写 2000 字,但是通常你不会一天下来一个字都不写的。当你想抱着一种创造性的心态来完成你的大作时,就会经常深切地感受到什么叫文思枯竭。但是也不完全相同,作为工程师如果一天不写代码会被认为是懒惰是懈怠。但是对于艺术家,这就不一样了,慵懒的心态是创作时必须的灵感之源。

A less structural link between programming and writing is in the drive you need when approaching one or the other: to succeed you need to make progresses, and to make progresses you have to be consistent. There is extensive agreement on the fact that programs and novels don’t write themselves, yet. Twenty years of writing code helped me immensely with this aspect; I knew that things happen only if you sit every day and write: one day one hundred words, the other day two thousands, but rare is the day I don’t put words on the page. And if you have written code that is not just a “filler” for a bigger system, but a creation of your own, you know that writer block also happens in programming. The only difference is that for most people you are an engineer, hence, if you don’t work, you are lazy. The same laziness, in the case of an artist, will assume the shape of a fascinating part of the creative process.

接下来我们重点谈谈不一样的地方。

The differences.

写小说和写代码最大的不同之处在于文字经过编辑校对定稿后就基本不会再修改了,也会有些时候作者在多年之后会对原作进行局部小修正然后再发布一个新版,但是这不多见,而且这通常也只是一锤子买卖。代码就不是这样的,它需要不断修改,需求源源不断到来,而且还经常是多人一起改。也正因此产生了两种不同的行为模式:程序员会觉得系统的初版无关紧要,反正时间总是要改进它。但是作家就不行,对于每一本小说他只有一次机会写出来,所以需要不断反复的推倒重写。说起来你可能不信,其中的每个句子、每个章节、对话都要重写两三次,有时候甚至要重写数十次。

I believe the most sharp difference between writing and programming is that, once written, edited and finalized, a novel remains immutable, mostly. There are several cases of writers returning on their novels after several years, publishing a bug fixed version of it, but this is rare and, even when happens, a one-shot process. Code evolves over time, is targeted by an endless stream of changes, often performed by multiple people. This simple fact has profound effects on the two processes: programmers often believe that the first version of a system can be quite imperfect; after all there will be time to make improvements. On the other hand writers know they have a single bullet for every novel, to the point that writing prose is mostly the act of rewriting. Rewriting sentences, whole chapters, dialogues that sound fake, sometimes two, three, or even ten times.

写代码还是需要向写小说学习一下的,学习作家对待小说原版的那种认真劲:在初创的过程中随心所欲、大刀阔斧、反复不断的修改内核,力求做到最优雅的设计。我认为系统最初的设计会非常影响后续的发展【好比性格决定命运】,平滑自然的演进才会慢慢诞生出一个漂亮完美的系统,即使是在多年之后,系统整体上已经面目全非,最初的版本只是其中的极小一部分。

I believe programming, in this regard, can learn something from writing: when writing the first core of a new system, when the original creator is still alone, isolated, able to do anything, she should pretend that this first core is her only bullet. During the genesis of the system she should rewrite this primitive kernel again and again, in order to find the best possible design. My hypothesis is that this initial design will greatly inform what will happen later: growing organically something that has a good initial structure will result in a better system, even after years of distance from the original creation, and even if the original core was just a tiny faction of the future mass the system would eventually assume.

最后再提一下我最近写的科幻小说,我估计大家会很感兴趣。自己检查了很多遍之后,总算把它发给了我的编辑,他叫 Giulio Mozzi,未来几周他会给我提一些修改意见。我会参考他的说明来重新进行一轮检查,期望未来一两个月能完成定稿。然后我就会发布这第一个意大利语版本,同时还会让我远在美国的翻译来搞定发表英文的版本。作家之路漫漫其修远兮,吾将上下而求索。

In case you are interested, a quick update about my sci-fi novel. After many self-reviews I sent the manuscript to my editor, Giulio Mozzi. He will send me the change proposals in a few weeks. I’ll start a new review process informed by his notes, and hopefully finalize the novel in one or two months. Then, finally, I’ll be ready to publish the Italian version. At the same time the finalized novel will be sent to my translator, in the US, and when she ends the translation the English version will be published as well. It’s a long journey, but one that I deeply enjoyed taking.

09d36661b8032f1a4932fda9ecb3e1fb.jpeg

扫一扫关注【码洞】

Another Redis Desktop Manager远程连接Redis失败排查指南:从安全组到防火墙的全面解析 本文详细解析了使用Another Redis Desktop Manager远程连接Redis时出现ETIMEDOUT错误的完整排查流程。从最易忽略的云服务器安全组配置,到系统防火墙、Redis自身配置,提供了由外至内、逐层检查的实战指南,帮助开发者系统性地定位并解决连接超时问题。 阅读详情

相关推荐

【Redis入门指南】从基础到实战:全面解析与高效应用

本文是一份全面的Redis入门与实战指南,从基础概念、核心数据结构(String、Hash、List、Set、Sorted Set)到与Spring Boot的整合应用,深入解析了Redis高性能的原理。文章结合实战经验,提供了序列化方案、连接池配置、键值设计、管道事务等高效应用技巧,并探讨了缓存穿透、击穿、雪崩等经典问题的解决方案,帮助开发者快速掌握并高效应用Redis。

weixin_29228203的博客 106

再见了,Redis之父!

作者:北席 编辑:Emma来源| BAT架构(ID:BAT_ARCH)掐掐手指头,Redis之父 Salvatore Sanfilippo(以下简称“S”)宣布退隐的消息已过一年,可能不...

技术领导力 2383

Redis为什么这么快 - 秒杀面试官系列

Redis作为非关系型内存数据库,只要是一个互联网公司都会使用到。Redis相关的问题可以说是面试必问的。 而作为一个程序员,尤其是一个后端程序员,如果你会Redis,毫不夸张地说,面试通过率可以增加50%。

【码农在新加坡】的专栏 393

Redis之父Salvatore Sanfilippo亲自认证,你还不赶紧收藏

当您需要近乎实时地访问快速变化的数据流时,Redis这样的键值数据库将成为您的理想之选。Redis不仅接纳了散列、字符串、列表等多种数据类型,还对键值对模式进行了扩展。这使得它既能够提供超快的内存数据集操作,又能在运行时轻松地将数据持久化到硬盘上。更重要的是,Redis是完全免费且开源的。这份文档将深入探讨Redis及其键值对模型。您将接触到各种实际应用案例,如缓存和分布式广告定向。我们将指导您如何从小型作业任务开始,逐步扩展Redis以适应大规模数据集。

资料免费分享,点击名片 602

【绝对干货】java连接redis集群

前言 关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也不至于被“拍死”在沙滩上。 近日,经过一朋友的透露,Alibaba也首发了一份限量的“Java成长笔记”,里面记载的知识点非常齐全,看完之后才知道,差距真的不止一点点! Java成长笔记主要是将Java程序员按照年限来进行分层,清晰的标注着Java程序员应该按照怎样的路线来提升自己,需要去学习哪些技术点。 下

m0_56711468的博客 1205

航天仿真必看:如何用SOFA库实现高精度GCRS-ITRS坐标转换?避坑指南

本文深入解析了航天仿真中高精度GCRS-ITRS坐标转换的关键技术,重点介绍了SOFA库在天球系与轨道系转换中的权威应用。通过对比传统方法的误差来源,详细阐述了SOFA库的转换算法优势、工程实现步骤及误差控制策略,为航天器轨道仿真提供毫米级精度的解决方案。

7h6j5k4l3的博客 850

Redis之父:找个靠谱的 C 程序员太难了!

作者 | yukang 出品 |程序员的喵 (ID: coderscat )西西里岛,是位于意大利南部阳光而宁静的岛屿,正如电影《西西里岛的美丽传说》中演绎的那样,这里有着古老的历史和建筑,看起来和 IT 不沾边,却是 Redis 的作者 antriez 的居住地。Redis 是互联网的一个基础设施,这个世界上大量的网站背后都有 Redis 的影子。相比于 Redis 的流行度,很多程序员并...

程序人生的博客 550

手把手教你用STM32的SPI驱动MCP2517FD实现CAN FD通信(附完整代码)

本文详细介绍了如何使用STM32通过SPI驱动MCP2517FD实现CAN FD通信,涵盖硬件连接、SPI驱动编写、寄存器配置及数据收发实战。提供完整代码示例和常见问题排查指南,帮助开发者快速构建高可靠性的CAN FD通信系统,适用于汽车电子和工业控制等领域。

weixin_30607029的博客 676

Linux之父和Redis之父,Redis持久化之父子进程与写时复制

之所以将Linux底层的写时复制技术放在Redis篇幅下,是因为Redis进行RDB持久化时,BGSAVE(后面称之为"后台保存")会开辟一个子进程,将数据从内存写进磁盘,这儿我产生了一个疑惑,就当这篇文章的引入场景:如果我们内存中有4G数据,现在8:00执行后台保存,由于数据写会磁盘需要时间,假设8:05数据才写完毕,但是这中间的5分钟,服务器一直对外提供服务,如果很多数据在这期间遭受到了更改,...

weixin_33631305的博客 293

MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据

1. 概述 MAX31855为热电偶至数字输出转换器,内置14位模/数转换器(ADC)。器件带有冷端补偿检测和修正、数字控制器、SPI兼容接口,以及相关的控制逻辑,在温度控制器、过程控制或监测系统中设计用于配合外部微控制器(μC)工作。提供多个版本的器件,每个版本针对特定的热电偶类型(K、J、N、T或E型)进行优化和调整。热电偶类型以器件型号后缀表示(例如MAX31855K)。 器件输出14位...

睿思派克 1万+

【张量分解(二)】CP分解

一、CP分解 1.1 定义 CP分解就是将一个张量分解成多个单秩张量的和。例如,给定一个三阶张量X∈RI×J×K\mathcal{X}\in\mathbb{R}^{I\times J\times K}X∈RI×J×K,则CP分解可以写为 X≈∑r=1Rar∘br∘cr\mathcal{X}\approx\sum_{r=1}^{R}\textbf{a}_r\circ\textbf{b}_r\circ...

bqw的博客 2万+

“手写代码已不再必要!”Redis之父罕见表态:AI将永远改变编程,网友质疑:我怎么没遇到这么好用的AI!

Redis之父antirez最新博文引发热议,他认为AI已永久改变编程行业,手写代码在多数场景下已非理性选择。文章指出AI可将数周开发压缩至几小时,但网友反应两极:有人体验效率飞跃,有人抱怨幻觉和bug频出,还有人对编程本质和职业前景表示担忧。当前实际情况是:AI已能高效处理基础代码,但在复杂系统和创新领域仍需人类主导。关键在于,能否驾驭AI正成为程序员的新分水岭。这场辩论折射出技术变革下职业生态的深刻转型。

m0_57545130的博客 486

uniapp - 获取设备麦克风权限+麦克风设备列表,用户可选择切换麦克风设备功能,选择麦克风采集设备后点击录制音频外部声音+可随时暂停/继续录音+记录音频录制时长(支持在线播放试听或下载MP3文件)

uniapp获取麦克风设备列表,uniapp录制声音,Uniapp获取麦克风权限,uniapp苹果ios安卓app获取麦克风设备列表,Uniapp H5获取浏览器麦克风并实现录音,Uniapp实现麦克风权限管理与音频录制全流程,uni-app实战案例:实现H5页面麦克风权限获取与录音功能,uni-app音频录制,uniapp麦克风授权窗口,uniapp获取iOS麦克风权限,实现前端录音并播放,把音频传给后端接口处理,获取麦克风并实现录音功能,前端获取/切换麦克风播放采集音频和采集音量大小,前端调用麦克风实现

🏆 前端领域优质创作者 2984

程序猿,从来不止一面

当讨论理工男的时候,如果碰上专职搞文艺的资深理工男(重点提名程序员),这种稀有的“双栖动物”,我们是绝对不能放过的。清华大学电子工程系雷达专业的高晓松靠文艺吃饭,而曲艺界...

程序人生的博客 1457

【Bug已解决】Codex App returns 401 Missing bearer/basic authentication after login on multiple Windows la

原始报错:Codex App returns 401 Missing bearer/basic authentication after login on multiple Windows laptops场景:用户在 Windows 笔记本上登录应用成功了,但随后每个业务请求都返回 401,提示"Missing bearer/basic authentication"。登录态像是"假的"——明明登了,请求却没带任何认证信息。多台 Windows 设备都能复现。

一键难忘的博客 596

《QGIS快速入门与应用基础》079:KML/KMZ格式:Google Earth兼容

KML/KMZ是专为地理可视化设计的空间数据格式,原生兼容Google Earth,支持点线面要素标注与多媒体集成。KML为XML文本格式,KMZ是其压缩版本。该格式优势在于可视化表现力强、跨平台共享便捷,适合地理标注、路线分享等场景,但存在属性支持弱、大数据量处理效率低等局限。QGIS中可便捷加载和导出KML/KMZ数据,需注意编码设为UTF-8、勾选"导出样式"以保留可视化效果。建议中小规模标注数据使用KMZ格式,确保关联资源完整,提升共享效率。

LuckyHanMo的博客 773

《码农时光的飞行日记》

| 生活不止于眼前的代码,还有诗与远方的BUG 时光轴: 》 2014-10-08 在岁月的褶皱里,透过阳光的空隙,穿越至此刻时,激动满怀的我正式成为了一名码农。 》 2015-02-27 漫步于世界的某个角落,然后用脚步丈量世界的每个角落,在繁华的街市里,终于踏足于深圳。 》 2019-11-04 开启博客之旅。 个人喜好: 篮球、阅读...

loy的码农时光 255

YOLO26涨点改进 | 检测头Head创新改进篇 | 利用DynamicConv高效动态卷积改进YOLO26检测头,DyHead通过增强检测头操作,轻量化改进、提高模型目标检测的精度

YOLO26作为新一代轻量化目标检测模型的代表,凭借精简的Backbone架构、高效的特征融合 Neck 设计,在实时检测场景(如嵌入式设备、边缘计算)中展现出优异的性能,成为工业落地与科研入门的优选模型。但在实际应用中,YOLO26原生检测头仍存在核心瓶颈:采用固定参数卷积核,无法根据输入特征的目标尺度、纹理差异动态调整卷积权重,导致多尺度目标适配不足、复杂背景下特征利用率低,且传统改进方案往往难以平衡“精度提升”与“轻量化”,要么精度提升有限,要么大幅增加参数量、拖累推理速度。

qq_36130719的博客 374

从代码到文字:一名 IT 码农在 优快云 的创作与成长之路

作为一名深耕业务多年的 IT 码农,我的日常被 Debug、需求评审、版本迭代填满 —— 但在敲代码之外,我在 优快云 上写下的每一篇技术文章,早已成为职业生涯里另一条重要的成长轨迹。今天想和大家聊聊,我为什么会成为技术创作者,以及这段旅程里的收获、日常与憧憬。

weixin_42300449的博客 787

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

redis hash删除所有key_redis系列篇01

今天写的这篇是redis系列的文章,我的安排是由浅入深写redis系列。本篇是简单的介绍入门,后续的文章会详细讲解redis深层次的知识。欢迎大家关注我的微信公众号:码农Bug首先说几个简单的命令:keys *:查询所有的键值del key:删除keyexixts:检查给定的key是否存在expire key seconds:给key设置过期时间(以秒计)expire key millsecond...

weixin_39986060的博客 1586

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

redis最大储存512m_redis系列篇01

今天写的这篇是redis系列的文章,我的安排是由浅入深写redis系列。本篇是简单的介绍入门,后续的文章会详细讲解redis深层次的知识。欢迎大家关注我的微信公众号:码农Bug首先说几个简单的命令:keys *:查询所有的键值del key:删除keyexixts:检查给定的key是否存在expire key seconds:给key设置过期时间(以秒计)expire key millsecond...

weixin_29791743的博客 1621

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

小码农也有大梦想!java可视化

掌握核心知识 1、90%几率面试被问,吃透原理,面试不慌(Spring原理) 2、大厂必问Redis,赶紧码起来(Redis核心原理) 3、MySQL从入门到实战都在这篇,面试笑谈优化 当然核心知识不止这三点,这只是一部分 吃透源码 1、面试源码有捷径,Spring源码将无所畏惧(Spring源码解析) 2、金三银四面试必问,MyBatis二级缓存揭秘 3、面试加分课,Spring MVC源码将无所畏惧 实战训练 1、受用终生的Redis实战场景 2、面试加分项(Spring Boot实战

m0_58590364的博客 81

北漂码农的真实心声:赚一线城市的钱,还二线城市的房贷

作者 | 年素清 责编 | 王晓曼 出品 | 程序人生(ID:coder _life) 我叫郭子洋,1993年出生在安徽南部的一座小城。父亲是某国企下属单位的一名车间工人,母亲四处打零工补贴家用,我还有一个比我大三岁的姐姐。 虽然家境寒微,但父母非常注重我和姐姐的教育问题,他们从小就教导我们要好好读书考个好大学将来才能出人头地。我和姐姐总算没有辜负他们的期望,姐姐毕业于省城的一座师范大学,回到家乡成了一名中学老师,而我则在2011年被北京某大学的计算机系录取。 虽然那所大学既非“985”,也...

优快云高校俱乐部官方博客 751

平平无奇小码农如何收割了3个大厂?原来是有“秘密武器”!

前言 春招结束之后,我特意把自己的面试经历顺了顺,总结出了不少的经验。对了,这次一共收割了3个大厂offer,分别是蚂蚁金服、美团和网易,特意分享这次对我帮助非常大的宝典资料,一共涉及九大核心专题,分别是计算机网络、操作系统、MySQL、Linux、JAVA、JVM、Redis、消息队列与分布式、网站优化相关,这些内容我熬夜整整23天才读完,希望它也能帮助到你们。 九大核心专题分享给你们,实现自己的大厂梦,共勉! 核心一:计算机网络 对于应届生和工作经验不足的开发小白来说,计算机网络相关的内

javassb的博客 170

Redis到底是多线程还是单线程?

网上很多人认为Redis是单线程,但是根据其这么高的效率,然后用windows运行时查看任务管理器发现好像不止一个线程,所以求大神指点确认回答一下。 关注者 8 被浏览 3841 关注问题写回答 ​添加评论 ​分享 ​邀请回答 ​

skiof007的专栏 5633

Java岗位缩减?普通码农破局的三个技术方向与长期策略

技术栈的兴衰更替是软件行业的常态,每一次调整都伴随着岗位需求的深度重塑。在Java后端领域,企业日益强调对底层原理的掌握:JVM调优、并发编程等核心能力成为区分工程师水平的关键分水岭。理解Java虚拟机的内存模型与垃圾回收机制,能帮助开发者快速定位线上故障;掌握并发工具与线程池的设计原理,则是在高并发场景下构建稳定服务的基础。这些技术不仅支撑着电商、金融等核心系统的运行,也决定了个人在求职与面试中的差异化竞争力。面对岗位数量波动,与其追逐热点或死记面试题,不如夯实内功,在性能优化与复杂问题排查上建立长期优势

weixin_26800111的博客 189
上一篇: 如何设计实现一个通用的微服务架构?高可靠、高可用思维模型
下一篇: 字节跳动急招 —— 广告系统存储架构研发工程师
码洞
博客等级 码龄10年 41粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值