Redis的特性和应用场景

news2024/11/16 9:30:42

目录

Redis的特性

内存存储数据

可编程性

可扩展性

持久化

水平扩展性

高可用性

为什么redis是快的

Redis的应用场景

数据库

缓存和会话存储

消息队列

redis是一个客户端服务器结构的程序


Redis是一个在内存中存储数据的中间件,能够用于作为数据库,数据缓存等,能在分布式系统中大展拳脚.

Redis的特性

关于redis的特性,在redis官网中给出了六个.

内存存储数据

在内存中存储数据.

Mysql主要通过表的方式来存储和组织数据,是关系型数据库.

Redis则是主要通过键值对的方式来存储和组织数据,是一个非关系型数据库.

key是string类型,value可以是上述类型.

可编程性

针对redis的操作,可以直接通过简单的交互式命令进行操作,也可以通过一些脚本的方式,批量执行一些带有逻辑的操作.

可扩展性

可以在redis原有的功能基础上进行扩展,redis提供了一组api.可以通过c,c++和rust编写redis扩展.

比如redis自身已经提供了很多的数据结构和命令,通过扩展,让redis支持更多的数据结构和命令.

持久化

redis是把数据存储在内存上的,而内存的数据是易失的,进程退出和系统重启都会造成内存数据的丢失.所以redis也会把数据存储在硬盘上.内存为主,硬盘为辅.硬盘相当于对内存的数据备份了一下,如果redis重启了,就会在重启时加载硬盘中的备份数据,使redis的内存恢复到重启之前的状态.

水平扩展性

redis作为一个分布式系统的中间件,能够支持集群是非常关键的,这个水平扩展就类似于"分库分表".一个redis能存储的数据是有限的(内存空间有限),引入多个主机,部署多个redis节点,每个redis存储数据的一部分.

高可用性

redis自身也是支持主从结构的,从节点就相当于是主节点的备份了.具有自动故障转移机制,主节点挂了,从节点能够随时上来顶替主节点.


为什么redis是快的

快是redis的一个极其重要的优势,那redis为什么是快的?

1.redis数据存储在内存中,访问内存是比访问硬盘要快的.

2.redis的核心功能都是比较简单的逻辑,核心功能都是比较简单的操作内存的数据结构.

3.从网络角度上来讲,redis使用了IO多路复用的方式.

4.redis使用的是单线程的模型(虽然高版本的redis引入了多线程),这样的单线程模型,减少了线程之间不必要的竞争开销.

5.redis是使用c语言开发的,相对于其他编程语言来说,速度快一些.


Redis的应用场景

数据库

大多数情况下,考虑到数据存储,优先考虑到的是空间要大,但是仍有一些场景,优先考虑的的快.

当然使用这样的内存数据库存储大量的数据,需要更高配置的内存硬件.

redis当作数据库使用的时候,存的是全量数据,这里的数据是不能随便删除的.

缓存和会话存储

使用mysql存储数据虽然大了,但是速度慢.因此我们可以把热点数据单独拿出来,放到redis中存储.

作为缓存,redis存的是部分数据,哪怕redis中的数据丢失了,还可以从mysql那里加载回来.

作为会话存储,之前我们的会话是存储在应用服务器上的,一旦服务器重启,会话就没了.要想实现会话的持久化存储,我们可以把会话存储到redis中.

消息队列

redis作为消息队列,可以实现一个网络版本的生产者消费者模型.对于分布式系统来说,服务器和服务器之间有时候也需要用到生产者消费者模型.(解耦,削峰填谷)

如果当前场景中,对于消息队列的功能依赖不是很多,并且不想引入其他依赖,此时redis可以作为一个选择.


redis是一个客户端服务器结构的程序

redis的客户端和服务器可以在同一个主机上,也可以在不同的主机上.

reids的客户端有多种形态:自带的命令行客户端,图形化界面的客户端和基于redis的api自行开发的客户端.

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

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

相关文章

leetcode-字符串

1.反转字符串LeetCode344. 20230911 难度为0,此处就不放代码了 注意reverse和swap等一系列字符串函数什么时候该用,记一记库函数 swap可以有两种实现,涨知识了,除了temp存值还可以通过位运算:s[i] ^ s[j]; s[j] ^ s[i…

使用electron创建桌面应用及常见打包错误解决

一、基本要求 在使用Electron进行开发之前,您需要安装 Node.js。 要检查 Node.js 是否正确安装,请在您的终端输入以下命令: node -v npm -v这两个命令应输出了 Node.js 和 npm 的版本信息。 二、创建应用 1、首先创建一个文件夹 mkdir …

C++项目——云备份-⑨-服务端与客户端功能联调

文章目录 专栏导读1.服务端源代码2.客户端源代码3.浏览器访问测试//listshow 4.上传文件测试5.文件下载测试 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计划导师,阿里云专家博主&…

基于黄金正弦算法的无人机航迹规划-附代码

基于黄金正弦算法的无人机航迹规划 文章目录 基于黄金正弦算法的无人机航迹规划1.黄金正弦搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用黄金正弦算法来优化无人机航迹规划。 …

NumPy教程(快速入门版)

NumPy 是基于Python的数学计算库,擅长处理数组/矩阵。 NumPy 是 Numerical Python 的缩写,它是一个由多维数组对象(ndarray)和处理这些数组的函数(function)集合组成的库。使用 NumPy 库,可以对…

修仙路上的基石->java内置的占位符

java内的占位符 System.out.println(String.format("牛逼logger记录:%s",message)); 在 Java 中,%s 是一个格式化字符串的占位符,用于表示后续参数中的字符串值。在 String.format() 方法中,%s 会被替换为相应的参数值。在给定的例…

Ubuntu 搭建 DHCP ivp6 server 步骤

Ubuntu 搭建 DHCP ivp6 server 步骤 安装 DHCP server安装 radvd(实现局域网路由功能)测试运行 安装 DHCP server apt 安装 isc-dhcp-server sudo apt-get install isc-dhcp-server修改配置文件 /etc/dhcp/dhcpd6.conf 内容如下: lease-time 7200; lo…

chatgpt生成文本的底层工作原理是什么?

文章目录 🌟 ChatGPT生成文本的底层工作原理🍊 一、数据预处理🍊 二、模型结构🍊 三、模型训练🍊 四、文本生成🍊 总结 📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN…

四十一、【进阶】索引使用SQL提示

1、SQL提示使用情景 在使用MySQL时,当一个字段参在于多个索引中时,默认情况下,MySQL会自动选择一个索引,但我们可以指定索引吗?可以忽略某一种索引吗? 答案是可以的。 前提:profession字段已经…

算法通关村第四关-黄金挑战栈的经典问题

括号匹配问题 描述 : 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有…

【Linux】内存精讲

TOC 目录 程序在计算机中的运行方式 CPU的指令 虚拟内存是什么? CPU的数据处理能力 (1)16位CPU (2)32位CPU (3)64位CPU 编译模式 32位编译模式 64位编译模式 C语言内存对齐 内存分…

终于有人把腾讯云轻量服务器“月流量”说明白了

腾讯云轻量服务器月流量什么意思?月流量是指轻量服务器限制每月流量的意思,不能肆无忌惮地使用公网,流量超额需要另外支付流量费,上海/广州/北京等地域的轻量服务器月流量不够用超额部分按照0.8元/GB的价格支付流量费。阿腾云aten…

2011-2021年上市公司百度指数数据

2011-2021年上市公司百度指数数据 1、时间:2011-2021年 2、指标:股票代码、股票名称、年份、类型、PC移动、PC端、移动端 3、来源:百度指数 4、范围:上市公司 5、样本量:7.4W 6、指标解释:百度指数&a…

为什么要进行兼容性测试? 常见方法有哪些?

在当今数字化的世界中,用户通过各种设备和平台访问应用程序和网站。为了确保用户体验的一致性和质量,兼容性测试成为了软件开发周期中不可或缺的一环。本文将深入探讨什么是兼容性测试,为什么它是如此重要,以及一些常见的兼容性测…

各传输介质详细知识点

一.百兆网传输介质 快速以太网(802.3u) 100Base-T2 电缆:2对3类UTP 最大段长:100m 特性阻抗:100 100Base-T4 电缆:4对3类UTP 最大段长:100m 特点:8B/6T,NRZ编码 特性阻抗:1…

【多线程面试题十九】、 公平锁与非公平锁是怎么实现的?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官: 公平锁与非公平锁是怎么…

安装OPENCMS过程记录

今天尝试安装个人网站,或者说是内容管理系统,wordpress 是PHP的,所以上网找了一个免费的,在知乎上基于Java的开源CMS有哪些推荐,各自特点是什么 - 知乎 (zhihu.com) 找了这个opencms,据说是免费&#xff0…

腾讯云轻量应用服务器“月流量”不够用怎么办?

腾讯云轻量应用服务器“月流量”不够用怎么办?超额部分支付流量费,价格为0.8元/GB。腾讯云轻量服务器月流量什么意思?月流量是指轻量服务器限制每月流量的意思,不能肆无忌惮地使用公网,流量超额需要另外支付流量费&…

【设计模式】第8节:结构型模式之“适配器模式”

一、简介 适配器模式是用来做适配的,它将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。 适配器模式角色: 请求者client:调用服务的角色目标Target:定义了Client要使用的功…