数据结构与算法:压缩列表
京东到家Feed流系统迭代之路
本文先简述Feed流系统核心业务点,了解Feed流的关键技术点,结合到家发现频道业务特点,逐步描述到家Feed系统的架构迭代历程。
重度使用Flutter研发模式下的页面性能优化实践
淘宝特价版是集团内应用Flutter技术场景比较多,且用户量一亿人以上的应用了。目前我们首页、详情、店铺、我的,看看短视频,及评价,设置等二级页面都在用Flutter技术搭建。
我们发现使用Flutter经常会遇到性能问题。因为Flutter严格意义上仅是一种“UI渲染框架”,它通过异步来来实现子线程渲染UI,并且通过Skia保证两端“渲染的一致性”。但子线程执行并渲染,且动态库打包这些策略并非“一片通吃”,会导致损耗页面打开性能及可交互时长的增加。试想,app启动时动态库加载的dynamic binding(影响启动时长),页面启动时主线程启动了页面,但ui渲染却需要等待Flutter的子线程执行并渲染,低端机上页面会短暂白屏(页面未渲染影响可交互时长,虽然fps欺骗性的提高了)。
Flutter有性能瓶颈,但重度使用Flutter研发的我们是如何做到性能优化的?
Redis为什么用跳表而不用平衡树?
Redis里面使用skiplist是为了实现sorted set这种对外的数据结构。sorted set提供的操作非常丰富,可以满足非常多的应用场景。这也意味着,sorted set相对来说实现比较复杂。同时,skiplist这种数据结构对于很多人来说都比较陌生,因为大部分学校里的算法课都没有对这种数据结构进行过详细的介绍。因此,为了介绍得足够清楚,本文会比这个系列的其它几篇花费更多的篇幅。
信也项目实战-Redis存储压缩方案
信也项目实战之Redis存储压缩方案,了解信也内部项目如何节省80%的Redis内存
Uncovering the truth behind Lua and Redis data consistency
Redis does not guarantee the consistency between master and its replica nodes when Lua scripts are used. Read more to find out why and how to guarantee data consistency.
redis探秘:选择合适的数据结构,减少80%的内存占用,这些点你get到了吗?
通过选用合适的数据结构来存储,可以大幅减少内存的占用。
Redis 到底是怎么实现“附近的人”这个功能的呢?
作者简介 万汨,饿了么资深开发工程师。iOS,Go,Java均有涉猎。目前主攻大数据开发。喜欢骑行、爬山。 前言:针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG、MySQL和MongoDB等多种DB的空间索引进行实现。而Redis另辟蹊径,结合
Redis基本类型及其数据结构
本文主要介绍了Redis常用的几种对象其底层使用的数据结构。
走近源码:压缩列表是怎样炼成的
经过前面对Redis源码的了解,令人印象深刻的也许就是Redis各种节约内存手段。而Redis对于内存的节约可以说是费尽心思,今天我就再来介绍一种Redis为了节约内存而创造的存储结构——压缩列表(ziplist)。 ziplist是zset和hash在元素数量较少时使用的一种存储结构。它的特点存储于一块连续的内存,元ߒ
深入学习Redis(1):Redis内存模型
前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符串
使用ElasticSearch的44条建议
记录各种踩坑及注意事项,Es的版本集中在1.x和5.x,权当参考。
基于Redis的分布式锁到底安全吗(上)?
探讨分布式锁,分析过程比结果更重要。