Redis重点知识详解

在这里插入图片描述在这里插入图片描述
因为热爱所以坚持,因为热爱所以等待。熬过漫长无戏可演的日子,终于换来了人生的春天,共勉!!!

1.什么是Redis?

  • Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库

  • 五种基本类型 : String(字符串)、List(列表)、Set(集合)、Hash(散列表)、Sorted Set(有序集合)。

  • 三种特殊类型 : geospatial(地理位置)、Hyperloglog(基数统计)、Bitmaps(位地图)

  • 与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另外,Redis 也经常用来做分布式锁。除此之外,Redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。

2.Redis为什么这么快?

1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于 HashMap,HashMap 的优势就是查找和操作的时间复杂度都是O(1)

2、数据结构简单,对数据操作也简单,Redis 中的数据结构是专门进行设计的;

3、采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;

4、使用多路 I/O 复用模型,非阻塞 IO

5、使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis 直接自己构建了 VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求;

3.五大数据类型基本

Redis主要有5种数据类型,包括String,List,Set,Zset,Hash,满足大部分的使用要求

数据类型 可以存储的值 操作 应用场景
STRING 字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作 对整数和浮点数执行自增或者自减操作 做简单的键值对缓存
LIST 列表 两端压入或者弹出元素, 根据下标取元素,特定元素前后插入元素, 截取范围内的元素, 修剪列表 存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的数据
SET 无序集合 添加元素、查看所有值、随机移除单个元素, 判断元素是否在集合中, 从集合里面随机获取元素, 计算交集、并集、差集, 交集、并集、差集的操作,比如交集,可以把两个人的粉丝列表整一个交集
HASH 包含键值对的无序散列表 添加、获取、移除单个键值对, 获取所有键值对,检查某个键是否存在 结构化的数据,比如一个对象
ZSET 有序集合 添加、获取、删除元素, 根据分值范围或者成员来获取元素,计算一个键的排名 去重但可以排序,如获取排名前几名的用户

4. 持久化

持久化 : 就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。
Redis 提供两种持久化机制 RDB(默认) 和 AOF 机制

- 1.RDB:是Redis DataBase缩写快照

RDB是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。通过配置文件中的save参数来定义快照的周期

在这里插入图片描述

RDB过程解析

Redis会单独创建(fork) 一个子进程来进行持久化,先将数据写入一个临时文件中,到持久化过程都结束了再用这个临时文件替换上次持久化好的文件, 整个过程中主进程是不进行任何IO操作的, 这样确保的及极高的性能. 如果需要进行大规模的恢复, 且对于数据恢复的完整性不是非常敏感, 那RDB方式要比AOF方式更加高效. RDB的缺点是最后一次持久化后的数据可能丢失

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Free的午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值