Redis

Redis

Redis概述

基于内存的nosql数据库,只支持linux系统,多用于做缓存、排行榜、计数器、分布式回话、分布式锁等等。

与memcache的区别
持久化:支持数据持久化(AOF追加和RDB快照),redis缓存有备份存在硬盘上;memcache数据都存在内存中,断电之后会挂掉
存储类型:redis支持string、list、set、map、sorted set多种数据存储类型;memcache只支持K/V形式的数据
分布式:redis原生支持cluster分布式集群,可以进行数据备份;memcache需要依靠客户端实现分片

redis底层

redis是纯内存数据库,使用单线程避免线程切换和竞争产生资源消耗,非阻塞I/O多路复用模型使其I/O处理速度很快。

  • redis单线程模型
    redis基于reactor模式开发了网络事件的处理器,也就是在单线程中处理多个事件,就像NIO中的selector一样,一个线程管理多个通道

淘汰策略

volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰
volatile-random:从已设置过期时间的数据集中任意选择数据淘汰
allkeys-lru:从数据集中挑选最近最少使用的数据淘汰
allkeys-random:从数据集中任意选择数据淘汰

redis高可用

master-slave模式(主从)通常高可用需要使用6台redis服务器,3主3从

  • 哨兵机制
    监控:哨兵每隔一定时间就像服务器节点发送ping,来判断节点状态。若哨兵ping不到某个哨兵节点,则视为该节点主观下线,超过大部分的哨兵ping无结果视为客观下线。当主服务器客观下线时,哨兵节点对其进行故障转移,开始投票,选举一个哨兵作为leader。
    master数据库出现故障时,可以通过投票机制,从slave节点选举新的master,实现从数据库转换为主数据库
    哨兵除了会监控master和slave节点,哨兵之间也会互相监控
  • 故障转移
    主服务器发生故障之后,从该主服务器的从服务器中选出一个来替换主服务器,当主服务器重新上线是,变为现在的主服务器的从服务器。

哨兵机制缺点:需要进行主从复制,性能下降,主服务器宕机后,从服务器替换主服务器的时间,服务不可用。

一致性hash算法。虚拟IP,hash环,最近redis服务器
16384个hash槽,每个节点负责一部分槽位,每个key会被映射到相应的槽位,负责这个槽位的master为其提供服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值