首页 > 数据库 >redis的持久化和集群模式

redis的持久化和集群模式

时间:2024-07-24 19:54:45浏览次数:16  
标签:持久 配置文件 redis 模式 主从 集群 192.168 节点

redis的持久化

什么是持久化

把内存中的数据存储到磁盘的,同时也可以把磁盘中的数据加载到内存中

redis实现持久化的方式

erdis实现持久化的方式有两种:RDB、AOF

第一种RDB(Redis DataBase快照模式,每隔一段时间对内存数据进行快照存储) 触发方式

  1. 手动触发:使用save或bgsave触发rdb,保存名称默认为dump.rdb save和bgsave的区别:save会阻塞当前Redis服务器,执行save时Redis不能处理其他命令,需等其执行完毕 bgsave执行时Redis会在后台进行快照操作,不影响其他操作的执行,也是Redis唯一的多线程操作

  2. 自动触发:通过配置文件的修改启用 步骤:打开conf配置文件,搜索save,在其注释下方添加save 秒 次数 例:save 10 5 意思为十秒内操作5次则自动保存

第二种AOF(Append Only File日志追加模式,需要手动开启)

  1. 开启aof:打开配置文件,搜索appendonly,将no改为yes即可启用

  2. 相关配置:appendfilename "appendonly.aof" 保存后的文件名称 appenddirname "appendonlydir" 保存的文件存放的目录名称 appendfsync always || enerysec || no 触发机制(总是触发||每操作一次触发||不触发)

  3. 执行原理:当启动redis服务器时会把日志文件中的命令从上到下执行一遍

RDB和AOF的优缺点

  1. RDB快照模式:数据备份和恢复速度快,但是数据完整性差,数据可能会丢失

  2. AOF日志追加:数据完整性高,缺点是数据备份和恢复速度慢

redis的集群模式

为什么使用集群模式

集群模式提高并发量和可用性

redis提供了三种集群模式

主从模式、哨兵模式、去中心化模式

第一种主从模式(主从模式表示一个主节点跟若干个从节点,主节点负责读写操作,从节点只负责读,数据会自动同步)

创建主从模式

1. 修改配置文件:将端口号和dump、aof文件的名称修改为不同的名字,确保能区分出主和从,并将文件复制多分,每份的文件内容都要修改
2. 开启redis服务器:redis-server 修改后的配置文件名
3. 配置主从关系(配从不配主):slaveof 主节点IP 主节点端口号
   配置完成后使用info replication可以分别查看主从的状态
4. 缺点:不会自动选举master主节点,一旦主节点挂掉会无法进行写的操作

第二种哨兵模式(为了解决主从模式的缺陷:当主节点宕机后,从节点无法直接上位的问题)

1. 修改sentinel.conf配置文件:将sentinel monitor mymaster 后的IP和端口号改为自己的主节点然后跟上哨兵数量除二的值为投票通过数 例:192.168.111.188 6380 1
2. 启动哨兵服务:redis-sentinel sentinel.conf

第三种去中心化模式(常用,至少包含三个主节点和三个从节点一一对应,主从之间自动同步,主从之间内置哨兵)

1. 修改配置文件端口号:复制六份配置文件将文件内的端口全部修改为不同的端口号
2. 开启集群模式:配置文件搜索cluster-enabled yes,将其启用,cluster-config-file nodes-自己的主节点的一个端口号.conf
3. 配置dump存储文件名,aof文件名,aof存储目录名
4. 启动服务:redis-server 修改后的配置文件名
5. 通过ps -ef | grep redis查看后缀为cluster的进程就是启动成功
6. 分槽以及设置主从关系(ip和端口等改为自己设置的):redis-cli --cluster create --cluster-replicas 1 192.168.111.188:7001 192.168.111.188:7002 192.168.111.188:7003 192.168.111.188:7004 192.168.111.188:7005 192.168.111.188:7006 

标签:持久,配置文件,redis,模式,主从,集群,192.168,节点
From: https://blog.csdn.net/Baizeh/article/details/140627861

相关文章

  • java连接redis和基础操作命令
    引入依赖<!--引入java连接redis的驱动--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.1</version></dependency>单机模式连接redismain(){//连接redis的信息默......
  • Springboot整合redis
    引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>修改配置文件//单机模式配置spring.redis.host=172.16.7.21 //ip地址spring.redis.port=6379 //端口号s......
  • MySQL PXC 集群死锁分析案例
    前不久一个系统死锁导致部分业务受到影响,今次补上详细的节点日志分析过程。这个PXC集群有三个节点,分别是108、109、110,日志信息的ip6地址、节点编号等信息均已做脱敏处理。以下日志里面,3个节点对应的配置信息是:10899999999-99089999:9999:9999:9999::6c10999999999-99099......
  • alpine 3.18.7 编译安装redis7.2.5
    1.安装对应的包apkaddbuild-basegcclibc-devlinux-headers安装makeapkaddmake2.解压缩redis包,tar-xzvfredis-7.2.5.tar.gz#进入src目录cd/root/redis-7.2.5/src3.进行make编译make 但是还是提示jemalloc/jemalloc.h:Nosuch......
  • opengauss第十三步: 在主集群主机和备集群首备执行查询,可观察到流复制信息
    第十三步:在主集群主机和备集群首备执行查询,可观察到流复制信息主集群主节点0[omm@node1dn]$gs_ctlquery-D/opt/huawei/install/data/dn[2023-04-1809:38:34.397][1498175][][gs_ctl]:gs_ctlquery,datadiris/opt/huawei/install/data/dnHAstate:local......
  • 【分布式锁】Redis实现分布式锁
    在分布式系统中,当多个服务实例(或节点)需要访问或修改同一份共享资源时,就需要使用分布式锁来确保数据的一致性和防止并发问题。这种情况下,传统的Java并发控制机制如ReentrantLock或synchronized就无法满足需求,因为它们是JVM级别的锁,只能保证单个JVM实例内部的线程同步,而无法......
  • Prometheus监控Redis
    Redis是一个广泛使用的内存数据库和缓存系统。使用Prometheus监控Redis可以帮助我们实时了解Redis的性能和健康状况。本文将详细介绍如何使用Prometheus来监控Redis。1.RedisExporterRedisExporter是连接Redis和Prometheus的桥梁,它负责从Redis收集指标并以Prometheus可以......
  • 关于时间格式存入Redis里面乱码的问题
    java的LocalDateTime时间类型不能转json传输,一般都是用这两个注解解决@JsonDeserialize(using=LocalDateTimeDeserializer.class)@JsonSerialize(using=LocalDateTimeSerializer.class)  @JsonDeserialize:json反序列化注解,用于字段或set方法上,作用于setter()方法,将jso......
  • 如何找到 Cech 复合体在 1 维上具有持久同源性但 Vietoris Rips 复合体没有的点集?
    我尝试解决的练习:“找到一个点集,使得Cech复合体在1维上具有持久同源性,而VietorisRips复合体则没有。通过计算两个复合物的持久同源性来验证您的解决方案。“这可能吗?据我所知,这两个复合体在欧几里得子空间上重合。我可以改变云的度量,但这感觉就像作弊。我想......
  • 服务器部署环境(docker安装Mysql + Redis + MongoDB)
    1.安装Docker1、选择要安装的平台Docker要求CentOS系统的内核版本高于3.10uname-r#通过uname-r命令查看你当前的内核版本官网地址2.卸载已安装的Docker,使用Root权限登录Centos。确保yum包更新到最新。sudoyumupdate如果操作系统没有安装过Dock......