4. 面试常见问题: 你对redis了解多少

什么是Redis / 为什么要使用Redis
redis是一个基于内存的key-value数据库, 性能非常好

redis支持保存多种数据结构,还可以设置key-value的过期时间
redis的缺点是受到内存的限制,不能作为海量数据的高性能读写

Redis的Value支持5种类型:
String字符串, List双向链表, Hash键值对,
Set无序集合, Sorted Set有序集合
(一个value最大限制为1GB 字符串类型为512M)

说明: 数据不能存储在session (session有效时间只有30分钟)

===================================

redis的持久化机制有2种: RDB 和 AOF

默认开启的是RDB
RDB性能更好, AOF安全性更好
持久化机制可以单独使用 也可以两者结合使用

RDB按时间 和 改变的key持久化
AOF根据时间持久化

===================================

Redis的集群:
原理: Redis会根据节点数量大致均等的将数据放在不同的master节点

怎么确定数据存放的位置?
redis集群中内置了16384个哈希槽,当你往redis存储一个key-value对时,redis会对key使用crc16算法得到一个结果,然后把结果对16384求余, 根据余数确定数据的存放位置

redis集群的淘汰机制
服务器之间通过互相ping的方式确定其他节点能否连接得上,
如果有一半以上ping的时候没有回应,就认为这台服务器宕机了。

由对应的slave节点 取代该服务器, 数据不会丢失
该服务器修复/重启后 会重新放到集群 并自动同步数据

master节点和slave节点都挂掉时, 数据丢失 (报错)
master没有slave (没有备份)的话, 该master失效后 就不可用了

由于淘汰机制: 至少需要6个节点 (3台master 3台slave)
主从关系: 每个master节点都要有一个slave节点(备份)

Redis数据淘汰策略
因为redis的数据是存储在内存中的,而内存的资源是有限的,
当reids存储的数据到一定内存的时候,就会淘汰内存中的一些数据
(淘汰就是删除这个数据,可以在AOF里面查到这个删除信息)

Redis集群的哨兵模式
哨兵的作用是监听redis服务器
当哨兵监测到主服务器宕机时,就自动将从服务器切换到主服务器,
然后通知其他服务器,修改配置文件,让他们切换主机

Redis心跳监测机制
redis集群的从服务器会每秒向主服务器发送ping命令,
如果没有接收到主机的回应就会连续ping几次,如果主机一个回应都没有就认为主机宕机了

=====================================================

redis数据变更时, 要将缓存数据清除
这样下次查询才能获取最新的数据

前端要显示数据时, 会先从Redis获取,
Redis没有 就从数据库获取, 并把数据存储在Redis

redis中, 存储的是数据对应的二进制 (安全)
redis优势: 可以长时间存储, 读写速度快

存储顺序/逻辑: 数据先存在数据库, 在存储在redis
因为当redis出现异常时, 系统会向数据库获取数据,
如果是先存储在redis的话, 数据库就没有数据, 会有BUG

=====================================================

分布式: 处理高并发 (3台master协同作业)
集群: 实现高可用 (3台slave备份数据)

集群是物理形态, 分布式是工作方式
只要是一堆机器, 那就是集群
但只有在不同机器协同工作时, 才叫做分布式

=====================================================

先从redis获取,
redis没有 就从数据库获取,
获取到后 要把数据存储在Redis

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值