Redis冠军宝座

1.概念:

Redis是一个完全开源免费内存中的数据结构存储系统,可以用作高性能的键值数据库,缓存和消息中间件,它支持多种类型的数据结构,如字符串,(hash)散列表(存对象),列表(也就是消息中间件),集合,有序集合等.

2.持久化策略

Redis的数据运行在内存中,如果服务器宕机,内存依然存在是因为Redis自身有持久化的机制
1.RDB模式
特点说明:是redis默认的持久化策略,可以实现定期的持久化文件(问题可能会造成数据的丢失,RDB模式记录数据的时候记录的是内存数据的快照,每次只保留最新的快照,持久化文件相对较小,恢复速度较快!)
2.AOF模式
特点说明:AOF是关闭的,使用时需要手动开启.
AOF是可以实现redis的持久化,可以保证数据的不丢失.
AOF持久化时记录的用户的操作过程,并且将每个过程都追加到持久化文件中,所以AOF的持久化的文件比较大,实现数据的恢复相对较慢.
如果AOF和RDB同时出现时,以AOF为主.
持久化文件实际的使用场景:使用redis集群时,redis的主机使用RDB模式(效率较高)redis的从机使用AOF模式(数据较全)

3.Redis内存的策略

(8种)

  • LRU:
    1.allkeys-lru 所有的数据采用lru算法
    2.Volatile-lru 设置超时时间的使用lru算法

  • LFU:(redis5.0后 针对使用次数删除,如果出现之前次数很多,现在不使用的现象次数右移)
    1.allkeys-lfu
    2.Volatile-lfu

  • Random:
    1.allkeys-random
    2.Volatile-random

  • TTL:超时时间(删除设置超时时间)
    Volatile-ttl

  • Noeviction 默认使用策略不删除数据,如果内存溢出,报错提示

4.Redis分片机制

  • 单台的redis存在的问题:
    1.如果单台的redis宕机整体无法运行
    2. 业务需要大量的内存时无法实现数据的存储

  • Redis分片机制的说明:
    由于单台redis不能实现业务的需求,不能保存海量数据,
    使用多台的redis共同保存数据,并且每台redis的内存数据是不同的!

  • 使用的算法:
    Hash一致性算法
    概念:对相同的数据进行hash算法,那么值一定必然相同.(类似我们学的函数)
    示意图:在这里插入图片描述
    特性:
    1.均衡性:出现负载不均,采用虚拟节点的形式实现平衡.
    2.单调性:新增和删除是节点中的数据可以实现自动的迁移.
    Redis中的节点只能新增,尽量不要删除.
    3.分散性:数据应该分散的存放在分布式集群中的各个节点(节点可以自己有备份)不必每个节点都储存所有的数据.
    由于分布式的部署;程序不能使用全部的内存空间,原来一个key只有一个位置.但是由于分散性 可能会导致一个key有很多的位置,所以使用内存最好使用全部的内存.
    作用:使用分片的作用主要就是实现了内存的扩容.

    5.redis哨兵机制(实现redis的高可用)

    可以映入哨兵机制实现redis服务器的高可用,但是实现的前提是实现数据的主从同步关系.
    哨兵的工作原理:
    在这里插入图片描述
    1.当哨兵服务器启动时,首先监控主机的状态,同时获取主句的详细信息
    2.哨兵会通过心跳检测机制定期检查主机的状态
    3.当主机超过了3次没有响应时则判断主机宕机,开启推选机制
    4.哨兵推选一台从机当主机,其他的服务器都当该主机的从机

6.Redis集群

Redis的分片的缺点:不可实现高可用
Redis的哨兵的缺点:不可以扩容并且哨兵自己宕机无法处理
Redis集群的原理:
实现高可用的原理图:
在这里插入图片描述
Redis中所有的节点都会保存当前redis集群中全部的主从关系,
当一个节点发生宕机时,其他节点会通过ping-pong机制检查节点是否宕机.当有半数以上的节点认为宕机,则认为主节点宕机,同时由剩下的主节点进入选举机制,实现故障的迁移.
推选机制示意图:
在这里插入图片描述
Hash槽储存数据原理:
与分片hash一致性的区别:hash一致性是在Tomcat中就已经算好的
Hash槽算法是在redis中计算的
0~16383,也就是有16384个槽位,将存储的数据中的key进行 CRC16[key]&16383计算放在什么位置.如图:
在这里插入图片描述
一个槽位是一个主节点,最多有16384个主节点
一共可以存16384个key吗?错误
一个节点可以存储很多个key

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值