从零开始学习 Redis
这篇文章介绍了Redis的基础知识和高级特性。它包括了安装Redis、使用命令行界面、编程语言接口、数据类型、事务、管道、发布订阅等内容。Redis是一个开源的内存存储系统,支持多种数据结构并提供丰富的操作命令,可以帮助开发人员快速处理数据。文章还介绍了Redis的持久化、过期时间、监视、脚本、监控、配置文件、慢查询日志等方面的内容。
你真的会写for循环吗?来看看这些常见的for循环优化方式
这篇文章介绍了常见的for循环优化方式。包括普通写法、提取数组长度、倒序写法、Iterator遍历、jdk1.5后的写法、循环嵌套外小内大原则、循环嵌套提取不需要循环的逻辑、异常处理写在循环外等。文章还提到了初始化集合list以及不同优化方式的优缺点和适用场景。
后端
未读
跟狗屎一样的代码,到底该如何重构?
这篇文章介绍了代码重构的原则、代码中可能存在的坏味道以及如何重新组织函数、搬移特性、重新组织数据、简化条件表达式、简化函数调用和处理概括关系来改善代码质量。重构是一种调整软件内部结构的方法,旨在提高代码可理解性和降低修改成本。作者也强调在需求不断变更的情况下,代码的不断调整和改进是自然的过程。
SpringBoot+Mybatis 如何实现流式查询,你知道吗?
这篇文章介绍了如何在SpringBoot+Mybatis中实现流式查询。通过介绍什么是mybatis的流式查询,以及Cursor接口的主要方法,代码实现,具体的应用场景和使用中的注意事项,让读者了解并掌握这种相对冷门但有效的查询方法。文章还提到了一些开发环境配置和使用的工具版本。流式查询可以避免一次性取出大量数据而占用过多内存。
BigDecimal加减乘除运算以及四舍五入
这篇文章介绍了BigDecimal的加减乘除运算以及四舍五入的方法。其中包括加法、减法、乘法、除法和求绝对值的操作。同时还介绍了四舍五入的不同模式,包括ROUND_DOWN、ROUND_UP、ROUND_CEILING、ROUND_FLOOR、ROUND_HALF_DOWN和ROUND_HALF_UP。文章末尾还给出了一个示例。
UUID的弊端以及雪花算法
这篇文章介绍了UUID的弊端以及雪花算法。在复杂分布式系统中,需要对大量的数据和消息进行唯一标识,因此需要一个能够生成全局唯一ID的系统。文章首先讨论了为什么需要分布式全局唯一ID以及分布式ID的业务需求、ID生成规则部分硬性要求、ID号生成系统的可用性要求等。接着,介绍了一般通用方案,包括UUID、数据库自增主键和Redis生成全局id策略。然后详细介绍了雪花算法,包括其概述、结构、代码以及优缺点。文章最后指出,UUID数据的无序性和每次插入对索引底层的B+树进行修改会导致一些问题,如分裂和不饱和节点的产生。
订单系统就该这么设计(万能通用),稳的一批!
这篇文章介绍了订单系统的设计。文章首先概述了订单业务的重要性,然后详细介绍了订单体系、流程管理、技术方案和数据方案等方面的内容。文章强调了在设计订单系统时需要进行全面的考虑,以避免中后期的重构。文章还详细分析了订单业务的三个核心参与方:用户、商户和平台,并从不同的角度对订单流程进行了分段策略的分析。最后,文章总结了订单系统的边界和上下游业务的衔接。
PO、VO、DAO、BO、DTO、POJO 能分清吗?
这篇文章介绍了PO、VO、DAO、BO、DTO、POJO的含义和用途。PO是持久对象,VO是值对象,DAO是数据访问对象接口,BO是业务对象层,DTO是数据传输对象,POJO是简单的Java对象。文章还提到了《阿里巴巴Java开发规范》中关于领域模型的规约,以及各个对象在不同层次中的使用。
分布式ID生成算法——雪花算法
这篇文章介绍了分布式ID生成算法——雪花算法。首先,文章讨论了分布式ID的需求和问题,指出了在分布式系统中使用自增ID可能导致冲突的问题。接着,文章详细介绍了雪花算法的结构和特点,包括符号位、时间戳、工作机器ID和序列号。雪花算法能够在高并发情况下保证分布式ID的全局唯一性,并且生成的ID按照时间升序排列。此外,文章还讨论了时钟回拨问题以及解决方案,并简单介绍了UUID的缺点。