一个vps可以建多少网站,北京seo网络优化招聘网,建设一个网站需要多少钱,国内购物网站大全一、主从模式通过持久化功能#xff0c;Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据#xff0c;因为持久化会把内存中数据保存到硬盘上#xff0c;重启会从硬盘上加载数据。但是由于数据是存储在一台服务器上的#xff0c;如果这台服务器出现硬盘故障等…一、主从模式通过持久化功能Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据因为持久化会把内存中数据保存到硬盘上重启会从硬盘上加载数据。但是由于数据是存储在一台服务器上的如果这台服务器出现硬盘故障等问题也会导致数据丢失。为了避免单点故障通常的做法是将数据库复制多个副本以部署在不同的服务器上这样即使有一台服务器出现故障其他服务器依然可以继续提供服务。为此 Redis 提供了复制(replication)功能可以实现当一台数据库中的数据更新后自动将更新的数据同步到其他数据库上。在复制的概念中数据库分为两类一类是主数据库(master)另一类是从数据库(slave)。主数据库可以进行读写操作当写操作导致数据变化时会自动将数据同步给从数据库。而从数据库一般是只读的并接受主数据库同步过来的数据。一个主数据库可以拥有多个从数据库而一个从数据库只能拥有一个主数据库。主从数据库的配置主数据库不用配置从redis的conf文件中可以加载从数据库的信息也可以在启动时使用 redis-server --port 6380 --slaveof 127.0.0.1 6379从数据库一般是只读可以改为可写但写入的数据很容易被主同步没所以还是只读就可以。也可以在运行时使用slaveof ip port命令停止原来的主切换成刚刚设置的主 slaveof no one会把自己变成主复制原理当从数据库启动时会向主数据库发送sync命令主数据库接收到sync后开始在后台保存快照rdb在保存快照期间收到的命令缓存起来当快照完成时主数据库会将快照和缓存的命令一块发送给从**。复制初始化结束。之后主每收到1个命令就同步发送给从。当出现断开重连后2.8之后的版本会将断线期间的命令传给重数据库。增量复制主从复制是乐观复制当客户端发送写执行给主主执行完立即将结果返回客户端并异步的把命令发送给从从而不影响性能。也可以设置至少同步给多少个从主才可写。无硬盘复制:如果硬盘效率低将会影响复制性能2.8之后可以设置无硬盘复制repl-diskless-sync yes二、哨兵当主数据库遇到异常中断服务后开发者可以通过手动的方式选择一个从数据库来升格为主数据库以使得系统能够继续提供服务。然而整个过程相对麻烦且需要人工介入难以实现自动化。 为此Redis 2.8中提供了哨兵工具来实现自动化的系统监控和故障恢复功能。哨兵的作用就是监控redis主、从数据库是否正常运行主出现故障自动将从数据库转换为主数据库。例子1主2从1哨兵注配置哨兵监控一个系统时只需要配置其监控主数据库即可哨兵会自动发现所有复制该主数据库的从数据库这样哨兵就能监控主6379和从6380、6381一旦6379挂掉哨兵就会在2个从中选择一个作为主根据优先级选如果一样就选个id小的当6379再起来就作为从存在。三、集群(cluster-enable)使用集群只需要将每个数据库节点的cluster-enable配置打开即可。每个集群中至少需要三个主数据库才能正常运行。即使使用哨兵redis每个实例也是全量存储每个redis存储的内容都是完整的数据浪费内存且有木桶效应。为了最大化利用内存可以采用集群就是分布式存储。即每台redis存储不同的内容。集群至少需要3主3从且每个实例使用不同的配置文件主从不用配置集群会自己选。修改每个实例的配置文件集群的运行这里的master选举和zookeeper的相似