首页
架构设计
后端
java
python
PHP
前端
vue
react
js+ccs
nodejs
AI
运维
Linux
常用工具
中间件
软件部署
运维随笔
问题记录
系列文章
redis理论及实战
RabbitMQ安装及原理
RocketMQ
Kafka
mysql5.7使用及原理
elasticsearch
轻松玩转大模型微调
K8S
软考
系统架构师
系统分析师
我的动态
路口、下车
累计撰写
78
篇文章
累计创建
52
个标签
累计收到
2
条评论
栏目
首页
架构设计
后端
java
python
PHP
前端
vue
react
js+ccs
nodejs
AI
运维
Linux
常用工具
中间件
软件部署
运维随笔
问题记录
系列文章
redis理论及实战
RabbitMQ安装及原理
RocketMQ
Kafka
mysql5.7使用及原理
elasticsearch
轻松玩转大模型微调
K8S
软考
系统架构师
系统分析师
我的动态
目 录
CONTENT
以下是
中间件
相关的文章
2025-08-22
redis理论及实战 第七篇:redis实战
文章介绍了使用Redis实现单点登录、缓存机制及常见问题解决方法,并提供了具体代码示例。首先,通过引入Spring Boot相关依赖和Redis配置,实现了基于手机号验证码的登录流程。接着,详细讲解了缓存更新策略(如LRU、超时剔除、主动更新)、双写不一致、缓存穿透、击穿与雪崩等问题及其解决方案。此外,还探讨了如何利用Redis作为分布式锁来处理并发场景下的数据一致性问题。最后,文章展示了Redis在秒杀系统、点赞功能以及用户签到统计等实际应用场景中的应用技巧,包括利用BitMap实现签到统计、HyperLogLog进行UV统计等高级特性。
2025-08-22
14
0
0
系列文章
中间件
redis理论及实战
运维
2025-08-22
redis理论及实战 第六篇:redis运维
Redis官网提供了多种语言的客户端,其中推荐使用的Java客户端包括Jedis、Lettuce和Redisson。Jedis和Lettuce主要提供与Redis命令对应的API,而SpringDataRedis则对这两种客户端进行了抽象封装,适合日常使用。Redisson不仅实现了分布式可伸缩的数据结构(如Map、Queue),还支持跨进程同步机制(如Lock、Semaphore),适用于特殊功能需求。Jedis可以通过添加依赖并配置连接池来快速使用,示例代码展示了如何进行基本操作及使用连接池提高性能。对于更高级的应用,可以参考SpringDataRedis的相关文档。
2025-08-22
10
0
0
运维
中间件
系列文章
redis理论及实战
2025-08-22
redis理论及实战 第五篇:redis运维
本文详细介绍了Redis的持久化机制、主从复制、哨兵机制以及分片集群的配置和使用。RDB持久化通过快照方式保存数据,支持手动和自动触发,但实时性较差;AOF持久化记录每个写命令,提供三种写回策略,保证数据不丢失。结合RDB与AOF可以同时享受快速恢复和简单记录的优势。主从复制实现读写分离,提高读取性能;哨兵机制监控主从节点并自动故障转移,确保高可用性。分片集群通过数据分片解决海量数据存储和高并发写的问题,支持动态伸缩。最后,文章还提供了Spring Boot中使用RedisTemplate访问分片集群的配置方法。
2025-08-22
8
0
0
redis理论及实战
系列文章
中间件
运维
2025-08-22
redis理论及实战 第四篇:redis网络模型
本文详细介绍了Redis的网络模型及其相关技术。首先,文章解释了用户空间与内核空间的区别以及为何需要这种划分,并讨论了进程寻址空间的概念。接着,通过比较阻塞IO、非阻塞IO、信号驱动IO和异步IO这几种不同的网络IO模型,说明了它们各自的工作机制及优缺点。特别地,对于多路复用IO,文章深入探讨了select、poll和epoll三种实现方式的特点及性能差异。此外,还介绍了Redis通信所使用的RESP协议的基本格式。最后,文章概述了Redis如何管理内存,包括过期key处理(惰性删除与周期删除)以及当达到内存限制时采取的不同淘汰策略(如LRU、LFU等),以确保高效的数据管理和访问速度。
2025-08-22
10
0
1
系列文章
redis理论及实战
中间件
运维
2025-08-22
redis理论及实战 第三篇:redis数据结构与类型
本文详细介绍了Redis中的数据结构与类型。Redis是一个键值存储数据库,使用Dict结构保存所有的key-value对。文章重点讲解了几种核心数据结构:SDS(简单动态字符串),具有O(1)时间复杂度获取长度、支持动态扩容和内存预分配等优点;IntSet,基于整数数组实现的集合,支持自动升级编码方式以节省内存;Dict,通过哈希表实现高效查询,具备渐进式rehash机制;ZipList,一种特殊的双端链表,用于紧凑存储小数据量列表;QuickList,结合了ZipList和双向链表的优点,解决大容量存储时的性能问题;SkipList,作为有序集合Zset的基础,提供高效的查找、插入和删除操作。此外,还讨论了RedisObject及其内部结构,以及五大数据类型的编码方式及转换条件。每种结构都针对特定场景进行了优化,以平衡内存使用和访问效率。
2025-08-22
9
0
0
系列文章
redis理论及实战
中间件
运维
2025-08-22
redis理论及实战 第二篇:redis理论与原理
Redis是一个key-value数据库,支持多种数据结构作为value。文章介绍了Redis中常见的几种数据结构及其操作命令: 1. **String**:用于存储字符串、整数或浮点数,支持自增、自减等操作。常用命令包括`set`、`get`、`mset`、`mget`、`incr`、`incrby`、`incrbyfloat`等。 2. **Hash**:类似Java中的HashMap,用于存储字段-值对。适用于缓存用户信息等场景。主要命令有`hset`、`hget`、`hmset`、`hmget`、`hgetall`等。 3. **List**:一个链表结构,支持从两端添加和移除元素。适合实现队列、栈等数据结构。关键命令如`rpush`、`lpush`、`rpop`、`lpop`、`lrange`等。 4. **Set**:无序不重复的元素集合,支持交集、并集等操作。适用于标签系统、点赞/踩等功能。常用命令有`sadd`、`srem`、`scard`、`sismember`、`smembers`等。 5. **Sorted Set (ZSet)**:每个元素关联一个分数,通过分数排序。适用于排行榜等需要排序的场景。重要命令包括`zadd`、`zrem`、`zscore`、`zrank`、`zcount`等。 6. **HyperLogLogs**:用于基数统计,例如独立访客数。核心命令是`pfadd`、`pfcount`、`pfmerge`。 7. **Bitmaps**:基于位图的数据结构,适用于记录二元状态(如打卡记录)。常用命令为`setbit`、`getbit`、`bitcount`。 8. **Geospatial**:地理位置相关的功能,可以进行距离计算、范围查询等。关键命令有`geoadd`、`geopos`、`geodist`、`georadius`等。 这些数据结构及相应的命令为Redis提供了丰富的功能,能够满足各种应用场景的需求。
2025-08-22
10
0
0
中间件
redis理论及实战
系列文章
运维
2025-08-22
redis理论及实战 第一篇:redis安装与使用
本文介绍了在Ubuntu虚拟机上单机安装Redis的详细步骤,包括下载、依赖安装、解压与编译、配置文件修改及启动服务等。还提供了通过Docker安装Redis的方法,并展示了如何设置自启服务。此外,文章讲述了使用Redis命令行客户端和图形化界面客户端(如RDM)进行连接的具体方法。最后,针对可能出现的内存警告问题,提出了两种解决方案,并给出了一些系统和应用层面的优化建议,以提高Redis性能和稳定性。
2025-08-22
8
0
0
redis理论及实战
中间件
运维
系列文章
2025-08-21
mysql5.7使用及原理 第二篇:理论及原理
MySQL的体系结构分为四层:连接层、服务层、存储引擎层和系统文件层。连接层负责客户端与服务器的连接,支持多种编程技术,并引入线程池概念以提高效率。服务层是核心部分,处理包括SQL接口、查询缓存、解析器、优化器等在内的主要功能。存储引擎层负责数据的实际存储与提取,支持多种插件式存储引擎如MyISAM和InnoDB。系统文件层则涉及数据文件、日志文件等物理存储。 运行机制方面,MySQL通过半双工通信协议建立客户端与服务端之间的连接;查询时首先检查缓存,若无则进行语法解析生成解析树,接着由优化器生成最优执行计划,最后执行并返回结果。对于存储引擎,尤其是InnoDB,默认从MySQL 5.6.13版本开始成为首选,它支持事务、外键及行级锁等功能,在高并发读写场景下表现更优。 此外,文章还详细介绍了InnoDB引擎的逻辑存储结构(表空间、段、区、页)及其内存结构(缓冲池、更改缓冲区等),以及B+树索引的工作原理。针对SQL优化、锁定机制(全局锁、表级锁、行级锁)、事务ACID特性保证方式、MVCC实现细节、各种日志类型(错误日志、二进制日志、慢查询日志)的作用及配置方法进行了深入探讨。最后简要提及了主从复制的基本原理及其应用场景。
2025-08-21
15
0
0
mysql5.7使用及原理
系列文章
中间件
运维
2025-08-21
mysql5.7使用及原理 第一篇:安装与使用
本文介绍了在Ubuntu系统下使用Docker安装MySQL 5.7,并配置一主一从复制环境的详细步骤。首先,通过`docker pull mysql:5.7`拉取镜像,然后分别创建并配置主(master)和从(slave)MySQL容器。对于主服务器,需要设置特定的配置文件`my.cnf`,包括设置`server_id`、开启二进制日志等,并创建用于数据同步的用户。接着,按照类似步骤配置从服务器,并通过`change master to`命令将其指向主服务器,最后启动主从复制。文章还简要提及了使用Mycat进行分库分表的参考资源。
2025-08-21
9
0
0
mysql5.7使用及原理
系列文章
运维
中间件
2025-08-21
elasticsearch安装及使用 第五篇:ES自动补全
本文介绍了如何在Elasticsearch中安装和使用拼音分词器,并详细说明了自定义分词器的配置。首先,文章指导读者查看ES安装与使用的相关文档以完成拼音分词器的安装。接着,通过示例展示了如何创建包含character filters、tokenizer及tokenizer filter三部分的自定义分词器,并给出了测试用例来验证其功能。此外,还演示了如何利用RestClient对Elasticsearch索引进行操作,包括修改mapping映射、批量导入数据以及实现基于自动补全建议的搜索查询。最后,通过代码片段具体呈现了整个过程的操作步骤。
2025-08-21
7
0
0
中间件
elasticsearch
运维
系列文章
1
2
3