【Redis】介绍

news2024/11/24 8:00:29

文章目录

      • NoSQL 数据库
      • Redis 数据库

配套视频课: https://www.bilibili.com/video/BV1Rv41177Af/

NoSQL 数据库

1、NoSQL 定义

  • NoSQL(Not Only SQL)泛指非关系型数据库
  • NoSQL不依赖业务逻辑方式存储,而以简单的key-value模式存储,大大增加了数据库的扩展能力。
  • NoSQL数据库与业务无关,聚焦数据,目的是提高性能。
  • 支持内存和持久化存储。数据保存在内存中可以提高效率,内存中数据不持久,硬盘数据持久。
  • NoSQL数据库作用:解决服务器CPU负载及内存压力、解决数据库IO压力。
  • 特点
  • 不遵循SQL标准。
  • 不支持ACID。
  • 远超于SQL的性能。

2、NoSQL适用场景

  • 对数据高并发的读写
  • 海量数据的读写
  • 对数据高可扩展性的

3、NoSQL不适用场景

  • 需要事务支持
  • 基于sql的结构化查询存储,处理复杂的关系,需要即席查询。
  • (用不着sql的和用了sql也不行的情况,请考虑用NoSql)

4、NoSQL数据库产品

  • Memcache

很早出现的NoSql数据库
数据都在内存中,一般不持久化
支持简单的key-value模式,支持类型单一
一般是作为缓存数据库辅助持久化的数据库

  • Redis

几乎覆盖了Memcached的绝大部分功能
数据都在内存中,支持持久化,主要用作备份恢复
支持多种数据结构的存储,比如 list、set、hash、zset等
一般是作为缓存数据库辅助持久化的数据库

  • MongoDB

高性能、开源、模式自由(schema free)的文档型数据库(类似json)
数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘
虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能
支持二进制数据及大型对象
可以根据数据的特点替代RDBMS ,成为独立的数据库。或者配合RDBMS,存储特定的数据。

  • Hbase

HBase 是一个开源的、分布式的、版本化的 NoSQL 数据库
利用 Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)提供分布式数据存储。
与传统的关系型数据库类似,HBase 也以表的形式组织数据,表也由行和列组成;不同的是,HBase 有列族的概念,它将一列或者多列组织在一起,HBase 的每一个列都必须属于某个列族。
用于需要对非常庞大的数据进行随机、实时的读写操作的场景中。可以用普通的计算机处理超过10亿行数据,还可处理有数百万列元素的数据表。

Redis 数据库

1、概述

  • Redis 数据库是一个开源的key-value存储系统,默认端口号6379

端口6379 来源于女星Alessia Merz

  • 数据类型:

存储的value支持五种数据类型:string(字符串)、list(链表)、set(集合)、zset(sorted set,有序集合)、hash(哈希类型)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

  • Redis支持各种不同方式的排序。
  • 存储:
  • 与memcached一样,为了保证效率,数据都是缓存在内存中。
  • Redis会周期性把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
  • 并且在此基础上实现了master-slave(主从)同步。
  • 默认16个数据库,类似数组下标从0开始,初始默认使用0号库。
  • 统一密码管理,所有库同样密码。

切换数据库命令:select dbid
dbsize 查看当前数据库的key的数量
flushdb 清空当前库
flushall 通杀全部库

2、应用场景

  • 配合关系型数据库做高速缓存

高频次,热门访问的数据,降低数据库IO
分布式架构,做session共享

  • 多样的数据结构存储持久化数据

3、Redis 与Memcache三点不同

  • Redis 支持多数据类型
  • Redis 支持持久化
  • Redis 单线程+多路IO复用

多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态。
比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。
在这里插入图片描述

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

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

相关文章

27K测试老鸟6年经验的面试心得,四种公司、四种问题…

这里总结了下自己今年的面试情况 先说一下自己的个人情况,普通二本计算机专业毕业,懂python,会写脚本,会selenium,会性能。趁着金三银四跳槽季,面试字节跳动测试岗技术面都已经过了,本来以为是…

阿里云弹性公网ip如何从包年包月转换为按量付费(按使用流量计费)?

开通包年包月的弹性公网ip后,想将计费方式转换为按量付费(按使用流量计费)的,应该如何操作呢? 操作流程如下: 第一步,包年包月转换为按量付费(按固定带宽计费)。 1.登录…

【C++11】基础改变

1.关于C11的介绍 C11标准为C编程语言的第三个官方标准,正式名叫ISO/IEC 14882:2011 - Information technology -- Programming languages -- C 。 在正式标准发布前,原名C0x。它将取代C标准第二版ISO/IEC 14882:2003 - Programming languages -- C 成为C…

上线3天,下载4万,ChatGPT中文版VSCode插件来了

ChatGPT 这几天可谓是风头无两。作为一个问答语言模型,它最大的优点就是可以回答与编程相关的问题,甚至回复一段代码。 尽管有人指出 ChatGPT 生成的代码有错误,但程序员们还是对它写代码、找 bug 的功能很感兴趣,有人还给 VScode…

一千字认识NodeJS

在学习Node.js时,发现一处课程通过介绍网站开发来引入Node.js的思路很有意思,在此将整个过程以自己的理解记录了下来,供大家学习交流😀😀😀 前端和后端 众所周知,前端程序yuan通常写的是浏览器…

数据库--------用户的授权

目录 授权例1例2例3例4例5收回例1例2例3授权 GRANT语句格式: GRANT <权限> [,<权限>]

SpringBoot打的jar包瘦身

文章目录正常打包瘦身方法一&#xff1a;Dloader.path指定依赖包位置瘦身方法二&#xff1a;配置文件里指定依赖包位置正常打包 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plu…

Talk预告 | 香港理工大学计算机系助理教授杨波:无监督2D/3D物体实例分割

本期为TechBeat人工智能社区第462期线上Talk&#xff01; 北京时间12月14日(周三)20:00&#xff0c;香港理工大学计算机系助理教授——杨波的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “无监督2D/3D物体实例分割”&#xff0c;届时将介绍香港理…

PyTorch深度学习框架学习记录(1)--安装,MNIST手写数字识别

文章目录框架发展安装cpu版本GPU版本学习记录MNIST手写数字识别数据的准备工作框架发展 Caffe框架&#xff08;2015&#xff09; 优势&#xff1a;只写配置文件 劣势&#xff1a;运行环境配置繁琐 Tensorflow 1.x&#xff08;2016&#xff09; 开发成本高&#xff0c;上手较…

正则表达式教程

视频&#xff1a;null正则表达式进阶是正则表达式30分钟入门40分钟进阶&#xff08;绝对能学会&#xff09;的第2集视频&#xff0c;该合集共计2集&#xff0c;视频收藏或关注UP主&#xff0c;及时了解更多相关视频内容。https://www.bilibili.com/video/BV19t4y1y7qP/?p2&…

如何用3D流体实现逼真水流效果?

华为应用市场在2022年HDC大会期间发布了一款3D水流主题&#xff0c;基于华为HMS Core Scene Kit服务能力&#xff0c;展现立体灵动的水流岛屿&#xff0c;可跟随用户指尖实现实时流体波动效果&#xff0c;既趣味又解压。 让变幻莫测的物质来实现我们在影视和游戏等多种应用场景…

sentinel 规则持久化

原始模式 如果不做任何修改&#xff0c;Dashboard 的推送规则方式是通过 API 将规则推送至客户端并直接更新到内存中&#xff1a; 这种做法的好处是简单&#xff0c;无依赖&#xff1b;坏处是应用重启规则就会消失&#xff0c;仅用于简单测试&#xff0c;不能用于生产环境。 se…

【Android】数据存储

一、文件存储 特点&#xff1a;openFileInput()和openFileOutput()读取设备上的文件。 优点&#xff1a;适用于存储大量的数据&#xff0c;可以存储图片、视频、文本等数据。 缺点&#xff1a;如果采用内部存储的方式&#xff0c;存储过量的数据可能会导致内存的不足&#xff…

2022年度手机行业排行榜(年度手机行业分析)

如今&#xff0c;随着手机普及率的不断增长&#xff0c;当前手机市场在逐渐饱和。在这一的态势下&#xff0c;手机行业中细分市场成为发展的必然趋势&#xff0c;随着市场细分和目标人群锁定的不断明确&#xff0c;手机市场中中小品牌手机的生存空间在逐渐被挤压&#xff0c;手…

消息队列,Unix的通信机制之一

最简单的消息内存的使用流程 ①ftok函数生成键值 ②msgget函数创建消息队列 ③msgsnd函数往消息队列发送消息 ④msgrcv函数从消息队列读取消息 ⑤msgctl函数进行删除消息队列 一个消息数据应该由以下一个结构体组成&#xff0c;举个例子 struct mymesg{long int mtype; /…

教你如何使用eBPF追踪Linux内核

【推荐阅读】 浅析linux内核网络协议栈--linux bridge 深入理解SR-IOV和IO虚拟化 深入linux内核架构--进程&线程 1. 还是先进入内核目录&#xff0c;执行下面的命令&#xff0c;确保内核代码是干净的。 $ make mrproper 2. 执行以下命令&#xff0c;开始对内核进行配…

Feign的性能优化

Feign底层的客户端实现有三种模式 1&#xff09;URLConnection&#xff1a;默认实现&#xff0c;不支持连接池&#xff1b;&#xff08;Feign发送http请求时&#xff0c;默认使用的客户端&#xff09; 2&#xff09;Apache HttpClient &#xff1a;支持连接池&#xff1b; 3&…

深度学习Week10-YOLOv5-Backbone模块实现(Pytorch)

● &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 ● &#x1f366; 参考文章&#xff1a;Pytorch实战 |第P9周&#xff1a;YOLOv5-Backbone模块实现(训练营内部成员可读) ● &#x1f356; 原作者&#xff1a;K同学啊|接辅导、项目定制 类似于上周内…

也谈特征值和特征向量的几何意义

在当前的大数据分析时代&#xff0c;数据降维是一个重要的分析技术。而谈到数据降维&#xff0c;就离不开一门最为抽象难懂的数学学科分支——线性代数。有人可能会问&#xff1a;一堆向量和矩阵符号的线性代数到底有鸟用&#xff1f;简单地不科学地说&#xff0c;线性代数就是…

【tiktok小店运营小知识】 tiktok小店也会被封吗?有哪些原因呢?

最近开tiktok小店的小伙伴越来越多&#xff0c;运营过程中也会碰到很多问题。有小伙伴问&#xff0c; tiktok小店也会被封吗&#xff1f;有哪些原因呢&#xff1f; tiktok小店也会被封吗&#xff1f;有哪些原因呢&#xff1f; 答案是肯定的。TikTok需要进一步规范店铺经营&…