【Redis 神秘大陆】002 简介&特性

二、Redis 简介&特性

  • Redis是什么?一款开源的高性能键值对存储数据库。
  • 特点:支持数据类型丰富,支持数据结构,支持内存外持久化等。

SQL与NoSQL

对比维度SQL数据库NoSQL数据库
数据模型关系模型,第三范式非关系型,键值对,文档,图形数据库等
查询方式结构化查询语言SQL各种自定查询语言或方式
并发处理能力基于锁机制,写操作容易成为瓶颈性能通常较SQL数据库强,支持高并发读写
事务支持能力支持ACID事务部分支持事务,但不如关系数据库
适用场景OLTP(在线交易)、结构化数据大数据量、高并发、半结构化或非结构化数据
对比项OLTP系统 在线事务处理(Online Transaction Processing)OLAP系统 在线分析处理(Online Analytical Processing)
作用范围在线事务处理联机数据分析
优化目标高并发写性能大量复杂查询与统计
数据模型关系模型事先汇总的模型
查询方式小规模插入更新选择大量记录分组统计
系统需求高可用性、并发性查询响应速度

基本特性

  • 支持多种数据类型

  • 支持多种编程语言

  • 功能丰富:事务、lua、pub/sub、pipeline

  • 事务:

  • multi(开启事务)

  • exec(执行事务)

  • discard (取消事务)

  • watch(监视)

  • lua 脚本 (原子性、实现命令组复用)

  • 格式:eavalsha

  • script load

  • script kill

  • 脚本超时

单线程模型

为什么单线程这么快

  1. 纯内存访问: Redis将所有数据存储在内存中,内存的访问速度非常快,大约在100纳秒左右。这使得Redis能够达到每秒万级别的访问速度。

  2. 非阻塞I/O: Redis采用了epoll作为I/O多路复用技术的实现,在配合自身的事件处理模型下,将epoll中的连接、读写、关闭等操作都转换为事件。这样可以最大程度地减少在网络I/O上的时间消耗,提高了系统的响应速度。

  3. 单线程避免了线程切换和竞态产生的消耗: Redis的单线程模型避免了多线程中因线程切换和竞态条件而产生的性能损耗。单线程模型使得数据结构和算法的实现更加简单,同时也避免了锁和线程切换带来的性能开销。

  4. 避免上下文的切换 -> Synchronized 锁的升级 【重量级锁】

单线程模型的优势:
  1. 简化数据结构和算法实现: 单线程模型使得开发人员能够更轻松地实现复杂的数据结构和算法,相比多线程模型更加简单直观。
  2. 避免了线程切换和竞态条件的性能损耗: 在高并发场景下,线程切换和竞态条件是常见的性能瓶颈,而单线程模型避免了这些问题,提高了系统的稳定性和性能表现。
单线程模型的限制:
  1. 命令执行时间要求: 单线程模型要求每个命令的执行时间不能过长,否则会造成其他命令的阻塞。这对于高性能的Redis服务来说是致命的限制,因此Redis更适用于快速执行的场景。
  • bigKey 问题

当你发现这些内容对你有帮助时,为了支持我的工作,不妨给一个免费的⭐Star,这将是对我最大的鼓励!感谢你的陪伴与支持!一起在技术的路上共同成长吧!点击链接:GitHub | Gitee

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值