网站域名空间续费合同,苏州市建设职业中心网站,wordpress信用卡收款,东莞seo优化收费1.redis的持久化机制 内存数据库具有高速读写的优势#xff0c;但由于数据存储在内存中#xff0c;一旦服务器停止或崩溃#xff0c;所有数据将会丢失。持久化机制的引入旨在将内存中的数据持久化到磁盘上#xff0c;从而在服务器重启后能够恢复数据#xff0c;提供更好的…1.redis的持久化机制 内存数据库具有高速读写的优势但由于数据存储在内存中一旦服务器停止或崩溃所有数据将会丢失。持久化机制的引入旨在将内存中的数据持久化到磁盘上从而在服务器重启后能够恢复数据提供更好的数据保护和可靠性。 1.1 redis实现持久化的方式
Redis提供了两种主要的持久化机制分别是RDB快照Snapshotting和AOF日志Append-Only File。这两种机制可以根据不同的需求和场景来选择使用。RDB快照Snapshotting默认情况下使用该模式 RDB快照是一种全量持久化方式它会周期性地将内存中的数据以二进制格式保存到磁盘上的RDB文件。RDB文件是一个经过压缩的二进制文件包含了数据库在某个时间点的数据快照。RDB快照有助于实现紧凑的数据存储适合用于备份和恢复。 什么时候触发RDB模式
1.手动触发save和bgsave手动触发rdb。 保存的名称dump.rdb 2.自动触发: 通过修改redis.conf配置文件 优点- RDB快照在恢复大数据集时速度较快因为它是全量的数据快照。
- 由于RDB文件是压缩的二进制文件它在磁盘上的存储空间相对较小。
- 适用于数据备份和灾难恢复。缺点- RDB快照是周期性的全量持久化可能导致某个时间点之后的数据丢失。
- 在保存快照时Redis服务器会阻塞可能对系统性能造成影响。AOF日志Append-Only File默认不开启需要改配置文件开启 AOF日志是一种追加式持久化方式它记录了每个写操作命令以追加的方式将命令写入AOF文件。通过重新执行AOF文件中的命令可以重建出数据在内存中的状态。AOF日志提供了更精确的持久化适用于需要更高数据安全性和实时性的场景。 使用时把redis.conf配置文件中的appendonly no改为即可appendonly yes启用后生成的日志文件 优点- AOF日志可以实现更精确的数据持久化每个写操作都会被记录。
- 在AOF文件中数据可以更好地恢复因为它保存了所有的写操作历史。
- AOF日志适用于需要实时恢复数据的场景如秒级数据恢复要求。缺点- AOF日志相对于RDB快照来说可能会占用更多的磁盘空间因为它是记录每个写操作的文本文件。
- AOF日志在恢复大数据集时可能会比RDB快照慢因为需要逐条执行写操作。2. redis的集群模式 redis提供了三种集群模式. 第一种: 主从模式。redis3以下 第二种: 哨兵模式 redis5以下 第三种: 去中心化模式 为什么使用redis集群 提高并发量提高了可用性。 2.1 主从模式
redis主从模式表示一个主节点跟若干个从节点。 主节点可以负责写操作和读操作。而从节点只负责读操作。主节点的数据会自动同步到所有的从节点上。
第一步搭建redis主从模式修改redis.conf配置文件
1.端口号
2.dump文件的名称
3.aof的名称第二步启动redis服务并配置主从关系
配从不配主 slaveof 主节点IP 主节点portinfo replication 查看主从的状态配置从节点 查看主节点
查看从节点 思考
1. 如果某台slave宕机如果恢复后是否具有master新增的数据呢。 [有]
2. master宕机后slave会不会自动选举主节点。 [不会] ---[导致一旦主节点宕机无法进行写操作。]2.2 哨兵模式
为了解决主从模式的缺陷: 当主节点宕机后从节点无法直接上位。
工作原理 第一步
修改sentinel.conf 第二步启动哨兵服务
redis-sentinel sentinel.conf
注意在linux桥接模式时候建议搭建的linux服务器放行所有哨兵以及所有redis的端口号不建议关闭防火墙当主节点故障时 2.3 去中心化模式 redis 集群中内置了 16384 个哈希槽当需要在 Redis 集群中放置一个 key-value时redis 先对 key 使用 crc16 算法算出一个整数结果然后把结果对 16384 求余数这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。 当你往Redis Cluster中加入一个Key时会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中一个hash slot中会有很多key和value。你可以理解成表的分区使用单节点时的redis时只有一个表所有的key都放在这个表里改用Redis Cluster以后会自动为你生成16384个分区表你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区每个分区里有很多key。 最少三主三从
第一步修改redis.conf配置文件
1. 修改端口
2. dump文件名
3. aof文件名
4. aof目录名
5. 开启集群模式 cluster-enabled yes
6. cluster-config-file nodes-7001.conf第二步启动redis第三步分配槽以及主从关系
redis-cli --cluster create --cluster-replicas 1 172.16.7.110:7000 172.16.7.149:6391 172.16.7.110:7001 172.16.7.149:6394 172.16.7.110:7002 172.16.7.149:6395发现172.16.7.1107001为主节点但是出现故障时可以自动选举在从节点中 命令行的客户端
redis-cli -c -h 192.168.111.188 -p 7006