当前位置: 首页 > news >正文

redis特性及应用场景

文章目录

  • 什么是redis?
  • 热库
  • redis作为热库的特性
  • redis适用场景

什么是redis?

redis在系统架构中的位置就是冷热分离架构的热数据库位置, redis就是热库, 我们一般说缓存数据库。 其他的像MySQL、SQL Server这种关系数据库、MongoDB、TiBD这种分布式数据库都处于冷热分离架构的冷库的位置。 那什么是热库?

热库

  • 热库,就是存放热点数据的数据库。 有一个原则叫做二八原则, 即百分之二十的数据能够应对百分之八十的请求。 热库里面存放的就是这百分之二十左右的热点数据, 来对外支撑百分之八十左右的请求。 当然这里的百分之而是和八十只是一个概念数字, 真正存多少,应对多少还要看具体的业务需求。

  • 热库就是缓存级数据库,就是说热库的数据都是保存在内存中的。 当前redis作为热库有持久化方案,但是我们说热库的建立思想就是一个缓存级数据, 所有的数据都保存在内存中。 这样, 因为热库存放的数据很少, 不用担心内存不够用, 又能利用内存远远大于硬盘的访问速度(内存相对硬盘查了三个到四个数量级)对外提供非常快的查询速度。

  • 热库的另一个好处就是分担冷库的读流量, 因为热库能够用少量的热数据分走大量的请求, 减轻了冷库的读并发负担。这样能够让冷库少一些从库, 减少系统硬件成本和系统复杂度。

redis作为热库的特性

  • 内存存储数据: 缓存级数据库。

  • 支持各种数据类型: redis标准内置了许多数据类型, 比如string, hash, set, list等。

  • 扩展性: redis支持扩展。linux中即.so第三方库。

  • 持久化:redis可以作为写库, 支持持久化。支持策略为Append-Only File 和 SnapShotting。简写为AOF和RDB。 这两个策略就是: RDB, 每当数据到来, redis进行快照将数据保存到磁盘进行数据备份。 AOF,数据备份方式为日志追加的方式(直接在日志末尾追加一条数据, 当读取时从后向前读取第一次读到的key),并且redis崩溃时会根据日志信息进行数据重建, 同时日志如果过大, 会进行压缩/重写。

  • 集群化:redis支持主从复制, 也就是允许添加冗余。 因为在分布式场景中, 读写并发量非常大, 只一台机器的内存是有限的, 如果一个redis的压力太大了, 就引入多台redis。 就能让redis在分布式系统中, 能够大展拳脚。 同时,又因为允许添加冗余, 这也同时提高了可用性。

  • 高可用:redis支持集群化,高冗余, 具有高可用性。

  • 支持lua脚本, 内置lua脚本进行复杂的操作。

    • redis在内存中, 访问的速度远远大于关联式数据库在硬盘读取数据。
    • redis的核心操作都是非常简单的,比如set, get, expire, 以及操作内存数据结构的lpush等等, 而关联式数据库的核心存储都要进行各种约束检查, 都是非常慢的。
    • redis在网络IO中, 使用了IO多路复用。
    • redis除了网络IO, 其他的业务逻辑都使用单线程, 没有线程之间的竞争开销。 又因为redis的核心操作简单, 操作的执行时间很短, 引入多线程的优势不明显。

redis适用场景

  • redis适用于对数据读取速率要求高的业务, 比如搜索引擎, 要搜索的快,准。
  • redis作为辅助的缓存手段, 比如我们平时浏览浏览器, 浏览器上面存储了我们的cookie, 这个cookie, 我们平时用的很多, 但是丢失了影响也不大,只需要重新登录一下, 或者redis从数据库中再重新加载出来就可以。
  • redis作为消息队列。

http://www.mrgr.cn/news/100037.html

相关文章:

  • Android killPackageProcessesLSP 源码分析
  • RabbitMQ 基础核心概念详解
  • Ubuntu22学习记录
  • 【数据可视化-22】脱发因素探索的可视化分析
  • TensorFlow深度学习实战(14)——循环神经网络详解
  • Ubuntu / WSL 安装pipx
  • 【Linux】基本指令(下)
  • pycharm2024.3.2项目解释器选择问题
  • docker 配置代理
  • 面试之消息队列
  • http协议、全站https
  • 2025第十六届蓝桥杯python B组满分题解(详细)
  • 每天学一个 Linux 命令(30):cut
  • 【华为】防火墙双击热备-之-主备模式-单外网线路-分享
  • 第9章 多模态大语言模型
  • 阿里云99机器总是宕机,实测还是磁盘性能差
  • 常用第三方库:cached_network_image图片加载优化
  • 自动化标注软件解析
  • 【农气项目】基于适宜度的产量预报
  • Linux 服务器运维常用命令大全