自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记录知识、锤炼自我

Spring、Spring Boot、Spring Cloud、DevOps、Redis、Mysql、微服务、云原生、大数据.....你想要的这里都有

  • 博客(751)
  • 资源 (2)
  • 收藏
  • 关注

原创 Redis 7.x 系列【38】缓存预热、缓存雪崩、缓存穿透、缓存击穿

缓存预热是指在服务启动或者流量高峰期之前,提前将数据加载到缓存中。避免因为缓存事先没有数据,大量请求直接落入到数据库中。

2024-08-07 14:52:31 782

原创 Redis 7.x 系列【37】旁路缓存模式

缓存技术(Cache)通过将热点数据临时存储在查询速度更快的位置,从而提高了系统的响应速度和性能。‌计算机硬件、软件都大量使用了缓存技术,例如 CPU 中三级缓存,作为 CPU 与内存之间临时数据交换区, CPU 会将热点、相同的重复执行指令等数据放入到高速缓存中, CPU 直接从缓存中获取指令、数据,从而提高了整机的响应速度。

2024-08-07 14:51:57 1267

原创 Redis 7.x 系列【36】访问控制表(ACL)

认证和访问控制是实现网络安全的重要措施,Redis 6 引入了ACL(Access Control List)访问控制列表功能,允许限制连接可以执行的命令和可以访问的键。

2024-08-06 13:20:28 1337

原创 Redis 7.x 系列【35】内存管理

支持配置 Redis 服务器能够使用的最大内存量,确保 Redis 使用内存不会无限制增长,从而消耗掉整个系统的所有可用内存,导致系统不稳定或崩溃。

2024-08-06 13:16:04 765

原创 Redis 7.x 系列【34】Spring Boot 集成

直接集成客户端,需要我们自己维护连接配置,获取客户端连接,再执行操作,最后还需要释放资源。Spring 提供了 Spring Data Redis 和 Spring Boot Data Redis Starter ,在 Spring Boot 环境中,可以很方便的连接并操作 Redis。

2024-07-30 09:47:55 656

原创 Redis 7.x 系列【33】布隆过滤器(Bloom Filter)

在需要判断某个元素是否在集合中时,可以使用链表、散列表将所有元素保存起来,然后通过比较进行判断。但是随着集合中元素的增加,需要的存储空间也会呈现线性增长,最终达到瓶颈,同时检索速度也越来越慢。1970 年,Howard Bloom 提供出了布隆过滤器(Bloom Filter),是一种概率性数据结构,主要用于检测一个元素是否属于某个集合。‌

2024-07-29 09:28:04 1232

原创 Redis 7.x 系列【32】函数(Redis Functions)

Redis v7.0 引入了 Redis Functions (函数),是一种基于脚本的优化方案,提供与脚本相同的核心功能。通过持久化和复制保证可用性,不依赖于客户端,允许通过服务端加载自定义的函数库,并且会进行主从复制和持久化存储。支持多种语言,目前仅支持 LUA ,后续计划支持 JavaScript、Python 等。

2024-07-26 17:37:52 799

原创 Redis 7.x 系列【31】LUA 脚本

Lua 语言是一种小巧的、高效的、可嵌入的脚本编程语言,由巴西里约热内卢天主教大学的一个研究小组于 1993 年开发。设计目的是为了通过灵活嵌入应用程序中,为应用程序提供灵活的扩展和定制功能。Redis 2.6 版本开始支持用户在服务器上传和执行 Lua 脚本,从而实现复杂的操作逻辑。脚本在 Redis 中是以字符串的形式传递给服务器的,然后服务器会执行这些脚本并返回结果。脚本在 Redis 中由内置的执行引擎执行。目前,仅支持一个脚本引擎,即 Lua 5.1 解释器。

2024-07-26 17:37:22 1092

原创 Redis 7.x 系列【30】集群管理命令

集群管理命令是用于管理和维护 Redis 集群,允许用户执行如查看集群信息、添加或删除节点、重新分片等操作。

2024-07-24 09:33:51 912

原创 Redis 7.x 系列【29】集群原理之自动故障转移

当 Redis 集群的某些节点出现故障时,可以自动进行故障转移,地将从节点提升为主节点,保证服务的连续性和数据的可用性。

2024-07-24 09:32:53 1195 1

原创 Redis 7.x 系列【28】集群原理之数据分片

数据分片(Data Sharding)技术,通过将数据分散存储到多个物理节点上,来减轻单一节点的负载压力,避免单点故障,同时也提高了整个系统的性能和容错能力,以及安全性和可靠性。

2024-07-23 08:56:35 1254

原创 Redis 7.x 系列【27】集群原理之通信机制

在 Redis 集群中,节点负责存储数据,并管理集群的状态,包括将键映射到正确的节点。集群节点还能够自动发现其他节点,检测非工作节点,并在需要时提升副本节点为主节点,以便在发生故障时继续运行。节点和节点之间,节点和客户端之间,都需要高效安全的通信机制,确保整个集群能如期正常运行。

2024-07-23 08:55:57 1049

原创 Redis 7.x 系列【26】集群模式动态扩容、动态缩容

Redis 集群支持动态增加节点实现扩容,提高集群容量和数据处理能力,接下来演示将之前三主三从扩容为四主四从。Redis 集群支持动态删除节点实现缩容,从集群中移除节点,将分配给该节点的哈希槽移动到其他现有节点上。接下来演示将上面的四主四从恢复为三主三从。

2024-07-22 15:46:08 1178

原创 Redis 7.x 系列【25】集群部署

Redis 3.0 提供了分布式的高可用解决方案 ( Redis Cluster ),通过数据分片的方式,将数据分散存储在多个服务器节点,以支持更大的数据量和更高的并发请求。同时,集群能够自动进行数据的重新分配和故障恢复,保证整个集群的可用性和稳定性。

2024-07-22 15:27:05 1648

原创 Redis 7.x 系列【24】哨兵模式配置项

在解压的源码文件中,可以看到哨兵的配置文件 sentinel.conf :

2024-07-11 13:33:22 876

原创 Redis 7.x 系列【23】哨兵模式

Redis 提供了基于哨兵(Sentinel)的高可用解决方案,Sentinel是一个运行在特殊模式下的 Redis 服务端,本身不存储任何数据,而是作为主从复制模式下的监控和管理工具。当主节点出现故障时,可以提供自动故障转移功能,从而保证 Redis 服务的连续性和稳定性。

2024-07-11 10:01:18 872

原创 Redis 7.x 系列【22】主从复制配置项

redis.conf 配置文件中,提供了很多个主从复制的配置项(在从节点中配置):

2024-07-09 15:15:42 1257

原创 Redis 7.x 系列【21】主从复制

主从复制是一种常见的数据库复制技术,用于实现数据备份、读写分离和高可用。Redis也支持主从复制,可以将一个Redis服务器的数据复制到多个其他Redis,从服务器(Slave)保持与主服务器(Master)相同的数据副本。主节点Master):负责接收客户端的写操作,并将其同步到从节点。从节点Slave):只能接收读操作请求,不能进行写操作。从节点会复制主节点的数据,并保持与主节点的数据同步。

2024-07-09 15:14:37 1389

原创 Nacos 2.x 系列【20】集群部署

实际生产环境中,必须保证 Nacos 高可用,所以需要使用集群模式部署。

2024-07-05 15:09:55 1524

原创 Redis 7.x 系列【20】发布订阅

Pub/Sub 发布/订阅是一种常见的消息传递模式,消息的发送方将消息发布到某个特定的频道或主题,同时,消息的接收方可以订阅一个或多个频道或主题,以接收并处理发布的消息。

2024-07-05 15:04:17 885

原创 Redis 7.x 系列【19】管道

允许客户端将多个命令一次性发送给服务器,而不需要等待每个命令的回复。这样可以减少每条命令的网络延迟时间,特别适合需要发送大量命令并获取结果的场景。

2024-07-05 14:56:57 1072

原创 Redis 7.x 系列【18】事务

Redis事务:允许在单个步骤中执行一组命令,其核心命令包括MULTIEXECDISCARD和WATCH。Redis所有事务中的命令都是串行化执行的,按顺序逐一执行。在事务执行过程中,不会在命令执行的中间阶段响应其他客户端的请求,这确保了命令作为单个隔离操作执行。EXEC命令触发事务中所有命令的执行:如果客户端在调用EXEC命令之前在事务上下文中失去了与服务器的连接,那么所有操作都不会执行。一旦调用EXEC命令,所有操作将被执行。在使用AOF时,确保使用单个系统调用将事务写入磁盘。

2024-07-04 17:38:41 1069

原创 Redis 7.x 系列【17】四种持久化策略

持久化官方文档在前两篇文档中,我们学习了RDBAOF的相关知识,它们各有优缺点。在实际应用中,需要根据场景选择适合的持久化策略。

2024-07-04 17:38:06 898 5

原创 Redis 7.x 系列【16】持久化机制之 AOF

Append Only File(AOF)是另一种持久化模式,它提供了更好的持久性保证。AOF以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据。换言之,重启的话就根据日志文件的内容,将写指令从前到后执行一次以完成数据的恢复工作。

2024-07-03 09:58:27 1397

原创 Redis 7.x 系列【15】持久化机制之 RDB

Redis 的数据都在内存中,一旦服务器宕机或者重启,所有的数据都将丢失。Redis 提供了持久化机制,将内存数据进行磁盘持久化保存,以便重启时重新加载数据到内存中。

2024-07-03 09:56:39 1017

原创 Nacos 2.x 系列【19】元数据管理

Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。从Nacos元数据管理:提供元数据CURD和打标能力CMDB:解决元数据存储,与三方cmdb系统对接问题,解决应用,人,资源关系。

2024-07-02 14:59:46 1467

原创 Nacos 2.x 系列【18】多网卡 IP 配置

个人电脑或者服务器,存在多网卡环境时,Nacos 可能会存在IP不正确问题。

2024-07-02 14:58:50 1101

原创 Redis 7.x 系列【14】数据类型之流(Stream)

消息队列:是指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递,生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队列拉取消息,或者订阅相应的队列,由服务端给其推送消息。

2024-07-01 09:16:10 1231

原创 Redis 7.x 系列【13】数据类型之地理位置(Geospatial)

Geospatial 简称GEO,翻译过来是地理空间的意思,是 Redis 3.2 版本新增一种数据类型,底层的索引结构是 ZSet。主要用于存储地理位置信息,并对存储的信息进行操作。

2024-07-01 09:12:47 946

原创 Redis 7.x 系列【12】数据类型之基数统计(HyperLogLog)

基数表示数据集中不重复元素的个数。例如 {1,2,2,3,4,5,5}中,基数集(不重复的元素)为 {1,2,3,4,5},那么该数据集的基数(不重复元素的个数)为5。Redis 2.8.9 版本引入了 HyperLogLog 用于基数统计的算法,用于估算一个集合中不同元素的数量(基数),在处理大量数据时具有显著的空间效率优势。

2024-06-28 10:17:05 1079

原创 Redis 7.x 系列【11】数据类型之位图(Bitmap)

Redis Bitmap 实际不是一个独立的数据类型,而是基于 String 类型实现的。它主要用于存储二值状态(即集合元素的取值只有 0 和 1 两种)。由于每个位只能表示两种状态,在需要快速进行大量数据的排序、查找、去重等操作时具有显著优势。Bitmap 实际上是利用 String 类型的最大容量(512 MB)存储一个连续的二进制序列。每个字节的 8 位可以分别代表 8 个独立的状态,因此可以用一个 Bitmap 来跟踪多达数百万甚至数十亿的状态。

2024-06-28 10:15:12 1310

原创 Redis 7.x 系列【10】数据类型之有序集合(ZSet)

ZSet是一种有序集合类型,可以存储不重复的元素,并且给每个元素赋予一个double类型的排序权重值。

2024-06-27 13:44:50 1439

原创 Redis 7.x 系列【9】数据类型之自动排重集合(Set)

Redis Set数据类型是一种无序集合,它不允许重复的元素,可以类比Java中的HashSet。

2024-06-27 13:41:19 820

原创 Redis 7.x 系列【8】数据类型之哈希(Hash)

Redis Hash 是一个键值对集合,是一个 string 类型的 field(字段) 和 value(值) 的映射表,类似 Java 里面中的 Map,特别适合用于存储对象。

2024-06-26 09:10:20 997

原创 Redis 7.x 系列【7】数据类型之列表(List)

Redis List(列表)是一种基于双向链表的数据结构,允许包含重复的元素,支持在列表的头部和尾部添加或删除元素。

2024-06-26 09:09:57 1063

原创 Redis 7.x 系列【6】数据类型之字符串(String)

在 Redis 中, String 类型是最基本的数据类型,是二进制安全的,可以存储任意类型的数据,文本、数字、图片或者序列化的对象 。

2024-06-25 20:07:20 977

原创 Redis 7.x 系列【5】基础命令

Redis 作为 KV 型数据库,基础命令则主要包含了针对 Key 的相关操作,7.x 版本包含的所有命令如下所示。

2024-06-25 20:06:46 812

原创 Nacos 2.x 系列【17】健康保护阈值

Nacos 支持通过配置健康保护阈值(ProtectThreshold)防止因过多实例故障,导致所有流量全部流入剩余实例,继而造成流量压力将剩余实例被压垮形成的雪崩效应。健康保护阈值定义为⼀个 0 到 1之间的浮点数。当域名健康实例数占总服务实例数的比例小于该值时,无论实例是否健康,都会将这个实例返回给客户端。这样做虽然损失了⼀部分流量,但是保证了集群中剩余健康实例能正常工作。

2024-06-21 10:10:28 729

原创 Nacos 2.x 系列【16】注册中心健康检查机制

注册中心不应该仅仅提供服务注册和发现功能,还应该保证对服务可用性进行监测,对不健康的服务和过期的进行标识或剔除,维护实例的生命周期,以保证客户端尽可能的查询到可用的服务列表。

2024-06-21 09:48:49 805

原创 Nacos 2.x 系列【15】数据源插件支持达梦、Oracel、PostgreSQL......

在 Nacos 2.2 之前的版本中,所有的 SQL 操作的执行是通过直接使用 JdbcTemplate 执行固定 SQL 语句的形式,使得 SQL 语句与业务逻辑高度耦合,并且只支持 Derby 与 MySQL 两种数据源。

2024-06-20 12:07:44 2311

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除