文章目录技术问题集合部分重点知识点SpringBoot与SpringCloudJVMNginxMySQLRedisRabbitMQ 技术问题集合你能说说SpringCloud和SpringBoot和SpringMVC吗(讲得越多越好)我看你简历上写了了解JVM,你能简单说说吗?你能说说Nginx的架构和底层的算法吗?MySQL熟悉吗(多说说)我看你用过Redis,其中有哪些常用的数据结构呢?你的            
                
         
            
            
            
            Redis设计与实现之String 文章目录Redis设计与实现之StringRedis简介SDSSDS的定义SDS的优势常数复杂度获取字符串长度杜绝缓冲区溢出减少修改字符串时的内存分配次数空间预分配惰性空间释放字符串对象编码embstr和raw的区别扩展 Redis简介Redis(Remote Dictionary Server ),即远程字典服务,是一个完全开源(遵守BSD协议)免费的使用C语            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-07 15:04:21
                            
                                106阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Redis 提供了 5 种基础的数据结构,它们分别是:String,Hash,List,Set,Sorted Set。Redis 缓存数据是以 key - value 的形式进行存储的,key 是一个唯一的字符串,通过操作唯一的 key 值来获取相应的 value 数据。不同数据结构的数据,也就决定了 value 的结构不一样。String(字符串)Redis 的 String 是一个动态的字符串            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-26 19:58:17
                            
                                48阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Redis的String扩容
## 引言
Redis是一种高性能的开源内存数据库,广泛用于缓存、消息传递和数据存储等场景。在Redis中,String是最基本的数据结构之一,可以存储字符串、整数和二进制数据。当需要存储的数据超过了Redis的默认限制时,就需要对String进行扩容。本文将介绍Redis的String扩容的原理、实现方式和示例代码,并分析其性能和注意事项。
## Redis            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-09 04:39:59
                            
                                142阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Redis中String类型数据的扩容
Redis 是一个高性能的键值存储数据库,广泛应用于缓存、实时分析等多个领域。在 Redis 中,String 类型是最简单也是最常用的数据结构之一。然而,随着数据量的增加,我们常常会遇到对 String 类型数据扩容的问题。本文将深入探讨 Redis 中 String 类型数据的扩容机制,并提供相应的代码示例。
## Redis String类型概            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-10-10 05:26:21
                            
                                116阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            咱们很显然可以看出,Redis 7.0版本对SDS的实现进行了优化,使其更加紧凑和高效,同时也保持了SDS的动态扩展和二进制            
                
         
            
            
            
            一、基础数据结构1、string字符串string是Redis最简单的数据结构,内部是一个字符数组。常用于缓存用户信息(JSON序列化),但①Redis的string是一个动态字符串,内部结构实现类似于Java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配,内部为当前字符串分配的实际空间capacity,一般是大于实际长度length的,当字符串长度小于1MB时,扩容就是加倍现            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-30 10:08:18
                            
                                270阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Redis 扩容数据迁移
## 简介
Redis 是一款高性能的内存数据库,常用于缓存、消息队列等应用场景。当数据量增长到一定程度时,可能需要对 Redis 进行扩容,以提供更多的存储容量和处理能力。在进行扩容时,需要将原有的数据迁移到新的 Redis 节点上,本文将介绍如何进行 Redis 数据的扩容和迁移。
## 方案
Redis 提供了一种常用的扩容方案,即通过分片(shardi            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-21 11:12:40
                            
                                110阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 在 Java 中实现 String 扩容
在 Java 编程中,字符串(String)是一个常用的数据类型。但是,Java 中的 String 类是不可变的,也就是说,一旦创建,就不能更改其内容。为了处理字符串扩容的需求,我们可以使用 `StringBuilder` 或 `StringBuffer`,它们提供了动态容量的字符串构建工具。然而,如果想要实现一个定制化的 String 扩容的功能            
                
         
            
            
            
            redis分片分片场景在业务量相对较小的时候,可以将所有数据都存到一台机器上,只使用redis单机模式,不存在分片问题。如果业务的数据量超过一台物理机器的内存大小时,则会面对扩展问题,需要多台机器去存数据,此时,需要使用到redis的分片技术。如何分片redis通过分slot的方式进行分片。例如有A、B、C三台机器组成的一个集群。对于集群里面的节点而言,三者会全部覆盖16384个slots(2K字            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-07 14:37:46
                            
                                175阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            redis集群分为服务端集群和客户端分片,redis3.0以上版本实现了集群机制,即服务端集群,3.0以下使用客户端分片(Sharding)。redis3.0服务端集群使用哈希槽,计算key的CRC16结果再模16834。3.0以下版本采用Key的一致性hash算法来区分key存储在哪个Redis实例上。JedisPoolConfig config = new JedisPoolConfig()            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-26 21:58:56
                            
                                33阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            简介说明本文介绍Redis的Cluster集群扩容的过程(原理)。概述扩容是分布式存储最常见的需求, Redis集群扩容操作可分为如下步骤:准备新节点。加入集群。迁移槽和数据。1.准备新节点需要提前准备好新节点并运行在集群模式下, 新节点建议跟集群内的节点配置保持一致, 便于管理统一。 准备好配置后启动两个节点命令如下:redis-server conf/redis-6385.conf
redis            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-30 13:36:41
                            
                                190阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 如何实现"redis扩容后数据迁移"
## 概述
在使用redis作为缓存数据库时,由于业务增长等原因,可能需要对redis进行扩容,这时就需要进行数据迁移。下面我将为你详细介绍如何实现"redis扩容后数据迁移"的步骤和操作。
## 流程图
```mermaid
journey
    title 数据迁移流程
    section 初始化
        开发者: 开始
    se            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-01 04:12:21
                            
                                32阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Redis集群扩容数据迁移指南
## 前言
在Redis集群中,当数据量逐渐增大,节点数量不足以支撑负载时,我们需要对集群进行扩容。扩容的过程中,我们需要进行数据迁移,将数据从旧节点迁移到新节点上。本文将指导你如何实现Redis集群的扩容数据迁移。
## 架构设计
在开始实现扩容数据迁移之前,我们先来看一下整个架构设计。
### 类图
```mermaid
classDiagram            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-27 12:31:33
                            
                                147阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                                                       分布式缓存Redis          &n            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-28 21:16:23
                            
                                98阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            生产上的redis使用一段使用后,数据量很大,redis的内存不足,需要扩容机器的内存。教训1:这个扩容一定要尽早去做。在机器剩余内存在500M左右去做。我是剩余100M的时候做的迁移,就很有问题。我是先用bgsave保存下数据。发现机器的的内存直接使用99%,swap也被快用完了,备份的速度极其的慢。4百万的数据,dump.rdb的文件有2.7G大小。备份了7个小时,读写极其慢,而且这个时候re            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-07 11:17:57
                            
                                74阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Redis Cluster 集群伸缩 1. 伸缩原理 Redis提供了灵活的节点扩容和收缩方案。在不影响集群对外服务的情况下,可以为集群添加节点进行扩容也可以对下线节点进行缩容。 我们在Redis Cluster 介绍与搭建这篇文章中搭建了一个三主三从的redis集群(如下图所示)。在搭建 Redis Cluster 通信流程剖析这篇博客中根据源码详细剖析了搭建集群            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-07 10:00:19
                            
                                45阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、引言上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境。当然,大家可以使用 Cluster info 命令查看Cluster集群的状态,也可以使用Cluster Nodes 命令来详细了解Cluster集群每个节点的详细信息和关系。我们可以在主节点上增加数据、操作数据,也可以在从节点上读取数据,这些操作当然都没有问题。我们            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-13 10:47:27
                            
                                347阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Redis是C语言实现的Redis的Key和Value都是Sting,C语言中 char data[]="Allen"Redis在C语言中自定义了一个数据结构来存储String,SDS数据结构SDS = Simple dynamic string 简单动态字符串特点:1. 二进制安全的数据结构2. 提供了内存预分配机制,避免了频繁的内存分配3. 兼容C语言的函数库String的扩容:SDS {            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-16 10:13:42
                            
                                120阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、快速回顾搭建RedisCluster集群1.cash槽 2. 没有分配卡槽:/usr/redis/bin/redis-cli --cluster create 192.168.212.163:7000 192.168.212.163:7001 192.168.212.163:7002 192.168.212.163:7003 192.168.212.163:7004 192.168.212.1            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-31 22:27:32
                            
                                173阅读
                            
                                                                             
                 
                
                                
                    