什么是 Redis,运行在哪里

开源的内存中的数据结构存储系统,可以用做数据库,缓存和消息中间件
基于 C 语言开发,运行时在内存中,运行速度很快
https://mp.weixin.qq.com/s/0Fqp2aGq7c_x_bEK9pOeeg

Redis 中的数据持久化策略

如果使用时允许丢失部分数据(少量的)则使用 RDB 模式,它的效率高,也是 redis 默认的
策略,如果不允许丢失数据则采用 AOF 模式,它的安全性高,但是效率较低

Redis 中的内存维护策略

问题:如果数据都存储到 redis 中,如果内存占满了,redis 如何维护?
解决方案:

  1. 动态的扩容 redis 节点(不科学)
  2. 为数据设定超时时间
  3. 动态的将不用的数据删除.(LRU 算法)
    算法介绍:
    内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做
    LRU,操作系统会根据哪些数据属于 LRU 而将其移出内存而腾出空间来加载另外的数据。

redis 为什么要分片

特点:实现动态内存扩容
数据存储机制:
REDIS节点根据IP:端口+算法(hash算法)顺时针

Hash 一致性

1.均衡性
尽可能均匀分片节点中的数据
2. 单调性
实现数据的动态迁移
3. 分散性
由于分布式原因,导致不能获取全部节点信息,使得一个 key 有多个位置
4. 负载
是分散性另一种表现形式.表现为一个位置有多个 key

知道哨兵机制吗,怎么实现的,实现了什么功能

功能:实现 redis 高可用
机制:心跳检测

哨兵和分片的优缺点

优点:

  1. 分片可以使 redis 动态内存扩容.
  2. 分片可以将数据均匀的分配到不同的节点中,使数据分散保存.
  3. 哨兵可以实现 redis 高可用.
    缺点:
  4. 分片如果有一个节点出现宕机则整个分片都不能正常使用.
  5. 哨兵如果发生宕机现象,则影响整个 redis 服务.
    升级:
  6. 使用多台 redis 实现内存空间的动态扩容.
  7. 实现在 redis 内存实现高可用(不再使用哨兵机制)使用组件(ruby)
    搭建集群,实现分片和高可用的全部功能.

Redis 集群

使用 ruby 工具创建集群.集群中全部的节点相互之间互相通讯.在 redis 内部实现高可
用.redis 集群是分片和哨兵的集合体

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐