数据库
未读
Redis 数据分片
这是一篇Redis集群分片算法的文章,介绍了Hash取模分片、一致性Hash分片和Redis Cluster数据分片的实现原理。首先,Hash取模分片简单有效,但在扩容时会导致大量数据迁移,且扩容时迁移的数据比例较高。接着,介绍了一致性Hash算法,通过虚拟节点和哈希环减少扩容时的数据迁移问题,然而也面临数据倾斜的问题。随后,文章详细阐述了Redis Cluster的分片机制,使用CRC16哈希算法将数据划分为16384个槽,并在节点增减时通过槽的均匀分配实现数据的平衡分布。最后,分析了为什么Redis选择哈希槽而非一致性哈希,强调了静态映射和数据均匀分布的优势,并解释了Redis Cluster分片的特点和优势。
Java
未读
Spring Cloud中数据库访问和持久化
这是一篇关于Spring Cloud中数据库访问和持久化的文章,介绍了使用JPA、MyBatis和MyBatis-Plus进行数据库操作的方式。文章首先讲解了JPA的基本概念、配置和使用方法,包括如何配置数据库连接、扫描实体类和Repository接口等。接着,介绍了MyBatis的使用,重点在于通过XML或注解方式灵活配置SQL操作,以及如何创建Mapper接口进行数据库访问。最后,文章讨论了MyBatis-Plus的优点,简化了MyBatis的配置,并通过BaseMapper提供了便捷的增删改查功能,提升了开发效率。
Java
未读
Spring Cloud中服务网关API管理、安全控制
这是一篇关于服务网关的文章,介绍了服务网关在微服务架构中的作用和功能。服务网关用于统一管理和路由进入系统的请求,扮演代理、路由和过滤角色,帮助实现API管理、请求过滤与转换、限流与熔断、缓存与性能优化等功能。文章详细阐述了如何通过Spring Cloud的Zuul或Spring Cloud Gateway进行路由管理、使用过滤器进行请求处理、实现限流与熔断、以及通过Redis进行缓存优化。此外,还讨论了安全控制功能,如认证与授权、SSL/TLS加密、CSRF防护等,并强调了日志和监控的重要性。最后,文章列举了服务网关在API聚合、请求过滤、安全控制、性能优化等多个场景中的应用,强调其提升系统可用性、性能和安全性的作用。
Java
未读
策略模式(行为)
这是一篇关于策略模式的文章,介绍了策略模式的定义、结构和应用。策略模式属于行为型设计模式,旨在将一系列算法封装为独立的策略类,使得它们可以互相替换,从而避免多重if-else的判断逻辑。文章解释了策略模式的设计原则,如将变化的代码与不变的代码分离、针对接口编程、使用组合而非继承等。模式结构包括环境类(Context)、抽象策略类(Strategy)和具体策略类(Concrete Strategy)。通过示例,展示了如何定义不同的出行策略(如火车、高铁、飞机),并通过环境类来操作策略。在分析部分,文章讨论了策略模式的优缺点及其与其他设计模式的区别,特别是与状态模式和工厂模式的区别,强调了策略模式的解耦合特性和扩展性。
Java
未读
Spring Cloud中消息队列实现异步通信
这是一篇关于消息队列在Spring Cloud中的应用文章,介绍了消息队列的基本概念及其在分布式系统中用于异步通信的作用。文章首先解释了消息队列的功能,如解耦消息发送者与接收者、解决系统间通信延迟等问题,并列举了Spring Cloud对常见消息队列中间件(如Kafka、RabbitMQ、ActiveMQ、RocketMQ)的集成支持。接着,文章介绍了使用消息队列实现异步通信的基本步骤,包括添加依赖、创建消息发送者和接收者、以及实现异步消息的发送与接收。文章还强调了异步通信的优势,如系统解耦、提高性能、保证消息可靠性和削峰填谷,适用于异步任务处理、事件驱动架构和微服务架构等场景。最后,文章总结了通过集成消息队列可以提高系统性能、可靠性和扩展性。
数据库
未读
Redis 集群模式
这是一篇关于Redis集群模式的文章,主要介绍了Redis的三种集群模式:主从模式、哨兵模式和Redis Cluster。文章详细解释了每种模式的工作原理、优缺点,以及它们在保证Redis数据库稳定性和容错方面的作用。
数据库
未读
Redis 分布式锁实现
这是一篇关于Redis分布式锁实现的文章,介绍了通过RedisLock工具类和EmLock注解实现分布式锁的功能。文章首先展示了RedisLock工具类的加锁、解锁过程,其中通过Redis的setIfAbsent命令获取锁,利用Lua脚本确保解锁的安全性。接着,介绍了EmLock注解的使用,支持指定锁的范围(应用级别或线程级别),超时时间和是否自动释放锁。文章还详细讲解了EmLockAspect切面类的实现,通过AOP拦截加锁方法,确保锁的获取和释放。最后,提醒了在不同服务器或容器中使用定时任务时的时间同步要求和Redis服务依赖问题。
数据库
未读
ShardingSphere 原理、使用
这是一篇关于ShardingSphere的文章,介绍了ShardingSphere作为一个分布式数据库中间件框架的概念及其工作原理。ShardingSphere通过将数据分片到多个数据库实例,实现透明的数据访问和管理,支持多种分片策略、路由算法以及读写分离、分布式事务等功能。文章详细阐述了ShardingSphere的使用方法,包括配置数据源、分片策略、路由决策和执行SQL等操作。接着,介绍了如何在Spring Boot项目中集成ShardingSphere,包括依赖引入、配置分片规则和实现分片算法的步骤。最后,展示了如何在业务逻辑中使用ShardingSphere进行数据操作和启动应用程序。
数据库
未读
MySQL 常见操作函
这是一篇关于MySQL函数的文章,主要介绍了数学函数、聚合函数、字符串函数、日期和时间函数、加密函数、控制流函数、格式化函数、类型转化函数以及系统信息函数。文章列举了常见的数学函数如ABS()、BIN()、ROUND()等,聚合函数如AVG()、COUNT()、SUM()等,以及字符串函数如CONCAT()、LCASE()、TRIM()等。还包括日期时间函数如CURDATE()、DATE_ADD()、YEAR()等,介绍了加密函数如AES_ENCRYPT()、MD5()、SHA(),以及控制流函数如IFNULL()、CASE等。文章还讨论了格式化函数、类型转换函数和系统信息函数如DATABASE()、VERSION()、USER()等。每类函数都提供了相关的示例,帮助读者更好地理解和使用这些函数。
数据库
未读
MySQL 高性能优化规范建议
这篇文章总结了数据库命名、设计、SQL开发和操作规范。命名规则要求数据库对象名使用小写字母和下划线,不得使用保留关键字,并保持简洁明了。数据库设计方面强调表使用InnoDB存储引擎,统一字符集为UTF8,表和字段需添加注释,控制表数据量,避免过多分区,做到冷热数据分离等。字段设计规范包括选择合适的数据类型,避免使用TEXT、BLOB等大数据类型,确保字段为NOT NULL,金额类使用decimal等。索引设计要求合理控制索引数量和顺序,避免冗余索引,优化查询性能。SQL开发规范强调使用预编译语句、避免隐式转换、充分利用索引、避免子查询和多表JOIN等。操作规范中提到批量写操作要分批进行,避免大事务,修改大表结构时使用pt-online-schema-change工具。
数据库
未读
MySQL 三大日志
这是一篇关于MySQL日志机制的文章,介绍了MySQL中不同日志的作用和机制。Undo log(回滚日志)记录事务前的数据状态,保证原子性和MVCC机制,主要用于事务回滚;Redo log(重做日志)记录事务后的数据状态,确保持久性,防止数据丢失,并通过不同刷盘策略控制数据写入磁盘的时机;Binlog(归档日志)记录所有数据库的更新操作,主要用于数据恢复和主从复制,且其刷盘策略和Redo log类似。文章还介绍了不同日志的区别、作用以及如何查看和配置相关日志。