微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redis

什么是Redis

redis是用c语言开发的一个性能的键值对数据库,redis是将数据存放到内存中,读取速度较快所以被广泛用于在互联网项目中。

Redis持久化

因为redis是将所有的数据都存储到了内存中,为了使redis在重启后仍然能保证数据的不丢失,需要将数据从内存中同步到硬盘中
redis支持两种持久化的方式,一种是RDB方式,一种是AOF方式

RDB持久化

RDB是通过快照完成的,当符合一定的条件后redis自动将内存的数据进行快照并持久化到硬盘。
RDB是Redis认采用的持久化方式,redis.conf配置文件认有如下配置

save 900 1  #900秒内容如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
save 60 10000 #表示60秒内如果超过10000个key被修改,则发起快照保存

redis启动后会读取RDB快照文件,将数据从硬盘加载到内存
优点:让redis的数据存取速度变快
缺点:当断电时,会丢失数据,使得数据的完整性无法得到保证

AOF持久化

认情况下Redis没有开启AOF,需要通过appendonly参数开启

AOF持久化策略如下
#appendfsync always   #每次有数据修改发生时都会写入AOF文件
appendfsync everysec  #每秒钟同步一次,该策略为AOF的缺省策略。
#appendfsync no        #从不同步。高效但是数据不会被持久化。

优点:持久化良好,能够保证数据的完整性
缺点:大大降低了redis的效率

主从复制

1.什么是主从复制:
持久化保证了即使redis服务器重启也不会丢失数据,但是当redis服务器的硬盘损坏了可能会导致数据的丢失,通过redis的主从复制机制就可以避免这种单点故障

在这里插入图片描述


2.主从复制的过程
(1)从服务启动,从会建立和主的连接,发送sync命令
(2)主启动一个后台进程将数据快照保存到RDB文件
(3)主发送RDB文件给从
(4)从将文件保存到磁盘中,然后将数据加载到内存中恢复
(5)主把缓存的命令转发给从
如果主挂了,从只能读

在这里插入图片描述

Redis集群

在这里插入图片描述


(1)所有redis节点彼此互联通过(ping-pong)机制,节点的fail是通过急群众超过半数的节点节点检测失效是才失效
(2)存取数据时连接任何一个节点都可以,但是集群中有一个节点挂掉,整个集群都会挂掉(以为一个节点挂掉相当于槽点分配不完整,使整个集群挂掉)

在这里插入图片描述


redis集群中有16384个槽分给了3个节点,存取数据时:crc16(key)%16384=0~16383

Redis集群至少有三个节点,因为投票容错机制。同时保证集群的高可用,需要每个节点都要有一个备份机
Redis集群至少需要6台服务器

原文地址:https://www.jb51.cc/wenti/3285566.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐