首页
架构设计
后端
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-25
RabbitMQ安装及原理 第一篇:RabbitMQ理论与原理
RabbitMQ是一种广泛使用的消息队列系统,其核心概念包括Connection(连接)、Channel(信道)、Exchange(交换机)、Queue(队列)和Virtual host(虚拟主机)。其中,Connection是TCP长连接,Channel在Connection基础上建立,用于执行消息的发送与接收等操作。Virtual host实现不同用户间的隔离,每个Virtual host有自己的Exchange和Queue。Queue用于存储消息,而Exchange负责根据规则将消息分发到不同的Queue。Exchange类型包括fanout(广播)、direct(直接匹配)、topic(主题匹配)和headers(基于头部属性匹配)。为了保证消息可靠性,RabbitMQ提供了publisher confirm机制、持久化配置以及消费者确认机制等解决方案。此外,通过设置TTL和死信交换机可以实现延迟消息处理;利用惰性队列技术则能够有效应对大规模消息堆积的问题,提高系统的可扩展性和稳定性。
2025-08-25
11
0
0
RabbitMQ安装及原理
中间件
系列文章
运维
2025-08-25
RabbitMQ安装及原理 第一篇:RabbitMQ安装与使用
本文介绍了如何在单机上使用Docker部署RabbitMQ,并详细说明了延迟队列插件的安装过程。首先,通过`docker pull rabbitmq:3.8-management`拉取RabbitMQ镜像,然后运行容器并设置用户名、密码、数据卷挂载及端口映射等参数。接着,文章提供了访问RabbitMQ管理界面的地址。对于延迟队列插件,给出了官方文档链接与下载地址,指导用户下载插件至指定数据卷目录,并进入容器内部启用该插件。最后,针对可能出现的cookie文件权限问题,提供了相应的解决方法。
2025-08-25
9
0
0
系列文章
运维
中间件
RabbitMQ安装及原理
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
springboot框架:springcache与redis
文章介绍了Spring Cache与Redis的使用方法及注意事项。通常情况下,缓存直接使用Spring Cache,特殊需求时可单独使用Redis。在缓存读写问题上,文章提到数据库和缓存一致性需自行处理;对于穿透、雪崩和击穿问题,提供了相应的解决方案如配置缓存空值、增加过期时间和使用本地同步锁等。使用Spring Cache结合Redis需要引入相关依赖,并进行适当配置,包括Redis连接信息及缓存策略设置。此外,还需要添加配置类以支持版本要求。最后,在代码中通过注解如@Cacheable、@CacheEvict和@CachePut来实现缓存操作。
2025-08-22
19
0
0
java
springboot
后端
2025-08-22
springboot框架:spring-data-redis 客户端
SpringDataRedis 是 Spring 框架中用于集成 Redis 数据库的模块,提供了对 Lettuce 和 Jedis 客户端的支持,并通过统一的 RedisTemplate API 简化了 Redis 的操作。它支持发布订阅模型、哨兵和集群模式,以及基于 Lettuce 的响应式编程。此外,还支持多种数据序列化方式,包括 JDK、JSON 和字符串等。使用时,只需在项目中添加 `spring-boot-starter-data-redis` 依赖,并进行简单的配置即可快速上手。文章还介绍了如何自定义序列化方法来优化存储空间利用效率,并展示了 StringRedisTemplate 的使用示例,强调了其对于字符串类型数据处理的优势。
2025-08-22
8
0
0
java
后端
springboot
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理论及实战
中间件
系列文章
运维
1
...
4
5
6
7
8