缓存的读写策略。你可能觉得缓存的读写很简单,只需要优先读缓存,缓存不命中就从数据库查询,查询到了就回种缓存。
2025年05月24日
即便牢记各种设计模式,也可能搭建出漏洞百出的系统。因为系统设计是一个循序渐进、分层次深入的过程。
处于这个阶段时,开发工作主要围绕客户端发送请求、服务端处理业务逻辑、数据库存储数据这三个基本环节展开。你掌握了HTTP方法、状态码和REST API等基础概念,也能在SQL和NoSQL数据库之间做出选择,却未必真正理解背后的原理。直到在生产环境中,因缺失空值检查导致500错误,不得不紧急修复,才算是真正叩开后端开发的大门。
2025年05月24日
无论是浏览器缓存(如果是chrome浏览器,可以通过chrome:://cache查看),还是服务端的缓存(通过memcached或者redis等内存数据库)。缓存不仅可以加速用户的访问,同时也可以降低服务器的负载和压力。那么了解常见的缓存淘汰算法的策略和原理就显得特别重要。
2025年05月24日
1、什么是redis?
Redis 是一个基于内存的高性能key-value数据库。
2、Reids的特点
Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。
2025年05月24日
前言
微笑挖坑,努力填坑。
———— 已经拥有黑眼圈,但还没学会小猪老师时间管理学的蛮三刀同学
本文是秒杀系统的第四篇,我们来讨论秒杀系统中「缓存热点数据」的问题,进一步延伸到数据库和缓存的双写一致性问题,并且给出了实现代码。
2025年05月24日
1.理解阻塞io,非阻塞io,同步io,异步io的区别
2.理解BIO和AIO的区别
io多路复用只负责io检测,不负责io操作
阻塞io中的write,能写多少是多少,只要写成功就返回,譬如准备写500字节,但是只写成功了300就会返回,不会阻塞到500字节全部写成功才返回
2025年05月24日
小白叨一叨:洪强宁,豆瓣首席架构师。豆瓣第一位全职员工。清华毕业后,洪强宁一直做嵌入式系统。在2002年开始接触Python语言,从硬件工程师变为软件工程师,对一种语言在计算机底层如何工作有深入的理解。下文中洪强宁介绍了豆瓣的架构和组件,并分享了豆瓣基础平台部的一些团队经验。
豆瓣整个基础架构可以粗略的分为在线和离线两大块。在线的部分和大部分网站类似:前面用LVS做HA,用Nginx做反向代理,形成负载均衡的一层;应用层主要是做运算,将运算结果返回给前面的用户,DAE平台是这两年建起来的,现在大部分豆瓣的应用基本都跑在DAE上面了;应用后面的基础服务也跟其他网站差不多,MySQL、memcached、redis、beanstalkd,不一样的是NoSQL的选择——BeansDB,这是我们在几年前开源的KV数据库,也是国内比较早开源的KV数据库。
2025年05月24日
你可能听说过Redis,也可能听说过Memcached。它们都是IT世界里鼎鼎大名的“缓存天王”,在很多大型网站和应用中,它们都扮演着加速器的角色,让你的网站和APP跑得飞快。
但就像三国时期的周瑜和诸葛亮,各有千秋,谁才是你心中的缓存之王呢?别急,让我们一层层揭开它们的神秘面纱,看看它们各自的绝活和适用场景!