redis特性及应用场景

news2025/4/27 3:44:22

文章目录

  • 什么是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.coloradmin.cn/o/2343731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++初登门槛

多态 一、概念 多态是指不同对象对同一消息产生不同响应的行为。例如,蓝牙、4G、Wi-Fi 对“发送数据”指令有不同的具体实现。 二、核心理解 本质:通过基类指针或引用操作子类对象,实现运行时动态绑定。 表现形式: 接口统一&a…

红队系列-网络安全知识锦囊-CTF(持续更新)

CTF CTF系列-AWD专题篇CTF-比赛培训基础1 CTF 介绍HTTP协议分析进阶001.CTF简介_宽字节注入高级 2018CTF——黑客大赛特训CTF-PWNPWNCTF竞赛中的主要题型之一了解CTF Capture The Flag 夺旗描述:# gets从标准输入设备读字符串函数#下面是对main函数中的汇编代码的解释:modifi…

Windows环境下常用网络命令使用

ipconfig命令使用: ipconfig可用于显示当前的TCP/IP配置的设置值,通常是用来检验人工配置的TCP/IP设置是否正确。在网络连接出现问题时,可以使用ipconfig /release和ipconfig /renew命令来刷新IP地址,这通常能解决因IP地址冲突或…

双系统下 ubuntu 20.04 突然 开机黑屏报错 hdaudioC0D2: unable to configure disabling

双系统下 ubuntu 20.04 突然 开机黑屏报错 hdaudioC0D2: unable to configure disabling 简介:今天在开实验室开双系统台式机时,ubuntu 20.04 系统下,突然在某次关机后再开机时,本来启动好好的,但是在进行图形化启动时,本来应该是显示输入账号和密码时,直接黑屏报错了,…

软考中级-软件设计师 知识点速过1(手写笔记)

第一章:数值及其转换 没什么可说的,包括二进制转八进制和十六进制 第二章:计算机内部数据表示 真值和机器数: 原码(后面都拿x -19举例) : 反码: 补码: 移码: 定点数…

Linux——线程(1)线程概念与控制

线程?这个名字我们似乎有些眼熟?没错,我们之前提到过的进程和这个有点像。但进程和线程有什么关系呢?本系列我们讲从线程的概念出发,了解一下Linux中的线程以及线程和进程的关系等内容。 一、线程的概念 线程是一个执…

备忘录模式:实现对象状态撤销与恢复的设计模式

备忘录模式:实现对象状态撤销与恢复的设计模式 一、模式核心:在不破坏封装性的前提下保存和恢复对象状态 在软件开发中,经常需要实现 “撤销” 功能(如文本编辑器的撤销修改、游戏存档读取)。直接暴露对象内部状态会…

freecad参数化三维模型装配体解析至web端,切换参数组或修改参数

用免费开源的freecad制作全参数化的三维模型,并且装配,上传至服务器,解析至web端,用户可以切换参数或修改参数,驱动模型改变。 freecad全参数化装配体模型解析至web端进行参数切换、修改完整展示_哔哩哔哩_bilibili …

浅析锁的应用与场景

锁的应用与场景:从单机到分布式 摘要:在多线程和分布式系统中,“锁”是避免资源竞争、保障数据一致性的核心机制。但你真的了解锁吗?什么时候该用锁?用哪种锁?本文通过通俗的比喻和代码示例,带…

语音合成之五语音合成中的“一对多”问题主流模型解决方案分析

语音合成中的“一对多”问题主流模型解决方案分析 引言“一对多”指的是什么?优秀开源模型的方法CosyvoiceSparkTTSLlaSA TTSVITS 引言 TTS系统旨在模仿人类的自然语音,但其核心面临着一个固有的挑战,即“一对多”问题 。这意味着对于给定的…

ElementUi的Dropdown下拉菜单的详细介绍及使用

Dropdown是 ElementUI 中用于创建下拉菜单项的一个组件,通常el-dropdown-item 包裹在 el-dropdown 组件中使用。以下从功能特性(一些属性及方法)、使用和高级功能(高亮显示,滚动,额外传参数)三个方面进行详细介绍。 一、功能特性 1.触发方式…

Linux麒麟 V10 系统找回 root 密码的步骤

Linux麒麟 V10 系统找回 root 密码的步骤 1 环境介绍2 操作步骤2.1重启系统并进入 GRUB 菜单2.2 输入 GRUB 账户密码2.3 修改启动参数2.4 启动系统2.5 修改root 密码2.6 重启系统 3 Linux命令全方位指南实战教程Linux命令学习使用列表 1 环境介绍 有时候root 密码忘记&#xf…

stone 3d v3.3.0版本发布,含时间线和连接器等新功能

1.新加了时间线(timeline)编辑器,可以类似blender一样给对象制作动画 2.新加了度量(metrics)系统,通过scene对象检测器中的useMetrics属性来启用或禁用,启用时所选物体将显示三维度量数据 新加了…

.whl文件

本文主要介绍了.whl文件的定义,怎么安装.whl文件(离线,在线)。 怎么查看cuda的版本,以及如何安装相应版本的cuda(本地电脑,超算上) 以及如何创建.whl文件 .whl文件的定义 Document…

Git命令行中vim的操作

Git命令行用vim打开文件,或者用其他git命令打开了文件,需要编辑和保存文件等,有些命令表情奇怪,往往容易忘记这些命令。记录下。 下面这篇比较实用和简练: gitvim编辑文件命令 • Worktile社区https://worktile.com/…

C#初级知识总结

一、什么是CIL 1.CIL(Common Intermidate Language)是指.Net的公共中间语言,它是一种编程语言。 .Net框架的各种语言在编译时都会编译成同一种中间语言(CIL),之后程序运行的时候CIL会被JIT(Just In Time)转换为二进制语言&#xf…

Linux学习笔记之环境变量

写这篇博客的目的主要是因为本人学习动静态库时,用到了环境变量的知识,发现略有遗忘,因此回顾复习,整理成博客。 一、环境变量是什么 Linux环境变量是存储系统或程序运行时配置信息的特殊变量,用于为程序提供配置参数…

16:00开始面试,16:08就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到4月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

私钥连接服务器(已经有服务器私钥

前言:假设我们已经有了服务器的私钥,我们怎么配置呢? 下面我会从vsc的配置角度来写 ✅ 步骤一:准备工作 安装 VS Code(如果还没装) 👉 https://code.visualstudio.com/ 安装插件:Re…

学员答题pk知识竞赛小程序怎么做

制作学员答题PK知识竞赛小程序,主要有以下步骤: 一、规划设计 明确需求:确定小程序的使用场景是校园知识竞赛、培训机构考核还是企业内部培训等。答题功能,规定答题的具体规则,包括题目类型(单选、多选、…