Redis 学习笔记

Redis是什么?

Redis 是一个使用C语言编写的,高性能的非关系型数据。他的数据是存在内存中的,所以速度非常快,经常用于存热点数据。

Redis为什么这么快?

在高版本中,他使用IO多路复用来监听多个连接,提高并发能力。

使用单线程对数据库进行操作,减少上下文切换。

基于内存,离CPU更近,操作更快。

Redis 是不是单线程?

redis6.0之前数据处理和网络IO是单线程,AOF和主从同步以外是其他线程。

在redis6.0版本支持的IO多线程特性,默认情况下IO多线程只针对发送响应数据,不会以多线程处理读请求。可以通过参数 io-threads-do-reads

Redis持久化机制?

有两种方式,AOF增量备份和RDB全局备份;

AOF增量备份是对命令行进行保存,不同的facy 策略可以保证数据丢失的风险降到最低。但是他的数据恢复效率是更低一些的。

RDB全局备份,他在备份的时候主线程是不能进行IO操作,恢复数据效率较高。缺点是可能会造成数据丢失。

-> AOF 他有两个缓冲区,对应三个策略,一个是执行完后刷新到 AOF缓冲区返回,第二个是刷新到内核缓冲区,第三个是刷新到磁盘返回。

过期删除机制

有三种:

定时删除:创建一个定时器,到时间了就去删除,比较消耗cpu资源,对内存友好

惰性删除:每次需要用到的时候,去判断这个数据是否过期,过期就删除,对内存不友好,cpu友好

定期删除:每隔一段时间就对一些键值进行检查,删除其中过期的键。

redis采用的是惰性+定期

内存淘汰策略

Redis 内存淘汰机制与算法 - 掘金

先认识LRU 和LFU

LRU(Least Recently Used) :最近最少使用 - 会淘汰最长时间未被使用的key

LFU(Least Frequently Used) : 最少次数(频率)使用 - 会淘汰最少使用次数的key

在redis 中有8钟淘汰策略

在会过期的数据中淘汰: volatile-LRU volatile-LFU volatile-Random

在所有的数据中淘汰: allkeys-LRU allkeys-LFU allkeys-Random

还有两种特殊的
no-evicition :没有被驱逐 ,不淘汰任何数据,满了之后报错。

ttl : time to live ,存活时间,淘汰存活时间最短的键,就是淘汰最先过期的值。

Redis事务机制

一文讲透 Redis 事务 (事务模式 VS Lua 脚本) - 掘金

redis提供一个打包多个命令的方式可以实现事务,但是有个问题就是,不能真正实现原子性,因为有一个命令出错后,在它之前的命令还是被执行了,不能回滚。

一般我们使用lua脚本去实现事务,因为他可以减少网络IO,速度更快,整个脚本会被当做一个命令执行。

讲讲Redis的线程模型?

https://www.cnblogs.com/mrmirror/p/13587311.html

Redis基于Reactor开发了网络事件处理器,这个处理器被成为文本事件处理器。它的结构分为4部分:多个套接字,IO多路复用程序,文本事件分派器,事件处理器。因为文本事件分派器队列的消费是单线车的,所以Redis才叫单线程模型。

IO多路复用程序监听多个套接字,并根据套接字目前执行的任务来为套接字关联不同的事件处理器。

集群策略

redis三种集群策略

还有人不懂Redis的三种集群策略?

主从模式:这种模式,主数据库进行读写,从数据库进行读操作。

哨兵模式:自动选育master 主节点,解决了主从过于依赖主节点的缺点。但是不能解决容量上限的问题。

集群模式:选用分片概念,存取数据,解决了容量上线的问题,能够多主多从。

集群模式扩容原理:原来的节点算好要拿出多少的槽位给新加的节点,新加的节点准备导入的槽位,准备的前提条件就是加入集群,一切准备就绪后,主节点将划分出来的槽位分配给新节点,然后将相关槽位的数据迁移到新的节点

集群模式设计的算法:

<分布式寻址>hash余数算法

<分布式寻址>一致性hash算法

<分布式寻址>redis cluster hash slot 算法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值