Redis 特性和应用场景

1. Redis特性

1)In-memory data structures

Redis 在内存中存储数据,key 是 String, value 可以是 hash, list, set, sorted set, stream ...

MySQL主要是通过 “表” 的方式来存储组织数据的 “关系型数据库”

Redis主要是通过 “键值对” 的方式来存储组织数据的 “非关系数据库”

2)Programmability

针对 Redis 的操作,可以直接通过简单的交互式命令进行操作

也可以通过一些脚本的方式,批量执行一些操作(可以带有一些逻辑)

3)Extensibility

可以在 Redis 原有的功能基础上再进行扩展,Redis 也提供了一组 API

4)Persistence

持久化 —— Redis 把数据存储在内存上

内存中存储的数据是易失的,进程退出/程序重启 都会丢失

可以把 Redis 中的数据存储在硬盘上,相当于备份。当程序重启时,会加载硬盘中的数据,是 Redis 的内存恢复到重启前的状态

5)Clustering

Redis 作为一个分布式系统中的插件,能支持集群(类似于水平扩展,“分库分表”)

一个 Redis 能存储的数据是有限的(内存空间有限)

引入多台主机,部署多个 Redis 节点,每个 Redis 存储数据的一部分

6)High availability

高可用 —— 备份/冗余

Redis 自身支持 “主从” 结构,从节点相当于是主节点的备份

2. Redis 应用场景

1)缓存

缓存机制⼏乎在所有⼤型⽹站都有使用,合理地使用缓存不仅可以加速数据的访问速度,而且能
够有效地降低后端数据源的压力。Redis 提供了键值过期时间设置,并且也提供了灵活控制最⼤内存和 内存溢出后的淘汰策略

2)排行榜

Redis 提供了列表和有序集合的结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统

3)计数器

Redis 天然⽀持计数功能而且计数的性能也非常好

4)社交网络

赞 / 踩、粉丝、共同好友 / 喜好、推送、下拉刷新等是社交网站的必备功能,由于社交网站访问量
通常比较大,而且传统的关系型数据不太合适保存这种类型的数据,Redis 提供的数据结构可以相对比较容易地实现这些功能

5)消息队列

消息队列系统可以说是⼀个大型网站的必备基础组件,因为其具有业务解耦、非实时业务削峰等
特性。Redis 提供了发布订阅功能和阻塞队列的功能,虽然和专业的消息队列比还不够足够强⼤,但是 对于⼀般的消息队列功能基本可以满足

3. Redis 运行快的原因探讨

1)Redis 数据存储在内存中,比访问硬盘的数据库要快很多

2)Redis 核心功能都是比简单的逻辑(比较简单的操作内存的数据结构)

3)从网络的角度上,Redis 使用 IO 多路复用的方式(epoll),使用一个线程管理多个 socket

4)Redis 使用的是单线程模型(高版本引入多线程),单线程减少了不必要的线程之间的竞争开销(Redis 的核心业务,主要是操作内存的数据结构,不会很消耗CPU)

多线程提高效率的前提是,CPU密集型任务

使用多个线程可以充分利用CPU多核资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76648.shtml

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

相关文章

每天五分钟深度学习:非线性激活函数的导数

本文重点 本文探讨了神经网络中几种常见非线性激活函数(Sigmoid、Tanh、ReLU、Leaky ReLU、ELU、Softmax)的导数特性。通过对各激活函数导数的数学推导与实际应用分析,揭示了不同激活函数在梯度传播、收敛速度及模型表达能力方面的差异。研究发现,ReLU及其变体在计算效率与…

redis哨兵机制 和集群有什么区别:

主从: 包括一个master节点 和多个slave节点: master节点负责数据的读写,slave节点负责数据的读取,master节点收到数据变更,会同步到slave节点 去实现数据的同步。通过这样一个架构可以去实现redis的一个读写分离。提升…

关于读完《毛泽东选集》的一些思考迭代

看完毛选前四卷,从革命初期一直讲到抗战胜利,共75.8W字,花费67个小时读完。从1925年发表的“中国社会各阶级的分析”,跨越100年,通过67个小时向主席学习到: 实事求是 从实践中来再到实践中去 用辩证与发展…

MySQL——MVCC(多版本并发控制)

目录 1.MVCC多版本并发控制的一些基本概念 MVCC实现原理 记录中的隐藏字段 undo log undo log 版本链 ReadView 数据访问规则 具体实现逻辑 总结 1.MVCC多版本并发控制的一些基本概念 当前读:该取的是记录的最新版本,读取时还要保证其他并发事务…

【Linux篇】深入理解文件系统:从基础概念到 ext2 文件系统的应用与解析

文件系统的魔法:让计算机理解并存储你的数据 一. 文件系统1.1 块1.2 分区1.3 inode(索引节点) 二. ext2文件系统2.1 认识文件系统2.2 Block Group (块组)2.2.1 Block Group 的基本概念2.2.2 Block Group 的作用 2.3 块组内部结构2.3.1 超级块(Super Bloc…

3 VS Code 配置优化与实用插件推荐:settings.json 详解、CodeGeeX 智能编程助手及插件离线安装方法

1 优化 settings.json 文件 1.1 settings.json 简介 settings.json 是 VS Code 的核心配置文件,用于存储用户的个性化设置和偏好。通过该文件,用户可以自定义和覆盖 VS Code 的默认行为,包括但不限于以下方面: 编辑器外观&#…

【Java面试系列】Spring Cloud微服务架构中的分布式事务处理与Seata框架实现原理详解 - 3-5年Java开发必备知识

【Java面试系列】Spring Cloud微服务架构中的分布式事务处理与Seata框架实现原理详解 - 3-5年Java开发必备知识 1. 引言 在微服务架构中,分布式事务处理是一个复杂且常见的问题。随着业务规模的扩大,单体应用逐渐拆分为多个微服务,每个服务…

力扣面试150题--有效的数独

Day 19 题目描述 思路 其实还挺简单的&#xff0c;主要的难点在于如何判断每个小数独是否满足要求 详细见代码 class Solution {public boolean isValidSudoku(char[][] board) {HashSet<Character> set new HashSet<>();//处理行HashSet<Character> set1…

达梦数据库-学习-15-大内存SQL相关视图介绍

目录 一、环境信息 二、介绍 三、数据字典表 1、V$MEM_POOL 2、V$SQL_STAT 3、V$SQL_STAT_HISTORY 4、V$LARGE_MEM_SQLS 5、V$SYSTEM_LARGE_MEM_SQLS 四、总结 一、环境信息 名称值CPU12th Gen Intel(R) Core(TM) i7-12700H操作系统CentOS Linux release 7.9.2009 (Co…

从0到1使用C++操作MSXML

1. 引言 MSXML&#xff08;Microsoft XML Core Services&#xff09;是微软提供的一套用于处理XML的COM组件库&#xff0c;广泛应用于Windows平台的XML解析、验证、转换等操作。本文将详细介绍如何从零开始&#xff0c;在C中使用MSXML解析和操作XML文件&#xff0c;包含完整的…

Windows 系统下用 VMware 安装 CentOS 7 虚拟机超详细教程(包含VMware和镜像安装包)

前言 资源 一、准备工作 &#xff08;一&#xff09;下载 VMware Workstation &#xff08;二&#xff09;下载 CentOS 7 镜像 二、安装 VMware Workstation&#xff08;比较简单&#xff0c;按下面走即可&#xff09; 三、创建 CentOS 7 虚拟机 四、安装 CentOS 7 系统…

应用安全系列之四十五:日志伪造(Log_Forging)之三

1、简介 针对Java的日志系统有多种&#xff0c;本文主要描述如何通过修改配置文件来解决logback和log4j的日志伪造问题。 2、logback 2.1、系统提供的解决方案 在logback.xml中配置编码器自动转义特殊字符&#xff1a; 复制 <configuration><appender name"C…

(五)循环链表、双向链表

循环链表 介绍 在单选链表基础上&#xff0c;下一个节点指向前一个节点&#xff0c;最后一个节点指向起点 封装循环链表 为了让循环链表可以继承自单向链表&#xff0c;对其进行重构 给其增加一个tail属性&#xff08;尾节点&#xff09;&#xff0c;对各方法进行重写整理 …

仙剑奇侠传98柔情版游戏秘籍

战斗秘技&#xff1a;在战斗中输入 “cheat”&#xff0c;然后输入 “v” 直接取胜&#xff1b;输入 “y” 敌人不攻击。另外&#xff0c;在战斗中按 “XJPXZ123” 加 “shift” 键&#xff0c;攻击力增加 1000&#xff05;。等级提升秘籍&#xff1a;当李逍遥等级到达 99 级时…

常见的归一化(Normalization)方法

本文详解深度学习中常见的归一化方法。 【归一化是将数据按比例缩放&#xff0c;使之落入一个特定的区间】目录 1. 批量归一化&#xff08;Batch Normalization&#xff0c;BN&#xff09;1.1 数学原理1.2 代码示例 2. 层归一化&#xff08;Layer Normalization&#xff0c;LN&…

行星际激波在日球层中的传播:Propagation of Interplanetary Shocks in the Heliosphere (参考文献部分)

行星际激波在日球层中的传播&#xff1a;Propagation of Interplanetary Shocks in the Heliosphere &#xff08;第一部分&#xff09;-CSDN博客 行星际激波在日球层中的传播&#xff1a;Propagation of Interplanetary Shocks in the Heliosphere &#xff08;第二部分&…

大模型可视化应用敏捷开发方案:Dify+Echarts

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 Moe模式&#xff1a;或将是最好的大模型应用开发路径一文带你了解大模型RAG详细记录…

23种GoF设计模式

GoF&#xff08;Gang of Four&#xff09;设计模式是由四位计算机科学家 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著的书籍《Design Patterns: Elements of Reusable Object-Oriented Software》中提出的设计模式 目录 一、创建型模式&#xff08;Cre…

Losson 4 NFS(network file system(网络文件系统))

网络文件系统&#xff1a;在互联网中共享服务器中文件资源。 使用nfs服务需要安装:nfs-utils 以及 rpcbind nfs-utils : 提供nfs服务的程序 rpcbind &#xff1a;管理nfs所有进程端口号的程序 nfs的部署 1.客户端和服务端都安装nfs-utils和rpcbind #安装nfs的软件rpcbind和…

C++ 入门六:多态 —— 同一接口的多种实现之道

在面向对象编程中&#xff0c;多态是最具魅力的特性之一。它允许我们通过统一的接口处理不同类型的对象&#xff0c;实现 “一个接口&#xff0c;多种实现”。本章将从基础概念到实战案例&#xff0c;逐步解析多态的核心原理与应用场景&#xff0c;帮助新手掌握这一关键技术。 …