Redis7

news2024/9/20 8:56:16

Redis之父安特雷兹

Redis7概述

  • Redis:Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案

跟Mysql的区别

与传统数据库关系(mysql)
Redis是key-value数据库(NoSQL一种),mysql是关系数据库
Redis数据操作主要在内存,而mysql主要存储在磁盘
Redis在某一些场景使用中要明显优于mysql,比如计数器、排行榜等方面
Redis通常用于一些特定场景,需要与Mysql一起配合使用
两者并不是相互替换和竞争关系,而是共用和配合使用

里程碑式的重要版本

在这里插入图片描述

核心新特性

Redis Functions

在这里插入图片描述

Client-eviction

在这里插入图片描述

Multi-part AOF

在这里插入图片描述

ACL V2

在这里插入图片描述

新增加命令

在这里插入图片描述
listpack 是用来替代 ziplist 的新数据结构,在 7.0 版本已经没有 ziplist 的配置了(6.0版本仅部分数据类型作为过渡阶段在使用)
在这里插入图片描述

底层性能提升

在这里插入图片描述

Redis10大类型之总体

String(字符串)

string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

List(列表)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
它的底层实际是个双端链表,最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)

hash

hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)

Set(集合)

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,集合对象的编码可以是 intset 或者 hashtable。
Redis 中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)

zset(sorted set:有序集合)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
zset集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 2^32 - 1

GEO

GEO主要用于存储地理位置信息,并对存储的信息进行操作,包括
添加地理位置的坐标。
获取地理位置的坐标。
计算两个位置之间的距离。
根据用户给定的经纬度坐标来获取指定范围内的地理位置集合

HyperLogLog

HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

Bitmap

在这里插入图片描述

由0和1状态表现的二进制位的bit数组

bitfield

通过bitfield命令可以一次性操作多个比特位域(指的是连续的多个比特位),它会执行一系列操作并返回一个响应数组,这个数组中的元素对应参数列表中的相应操作的执行结果。
说白了就是通过bitfield命令我们可以一次性对多个比特位域进行操作。

Stream

Redis Stream 是 Redis 5.0 版本新增加的数据结构。
Redis Stream 主要用于消息队列(MQ,Message Queue),Redis 本身是有一个 Redis 发布订阅 (pub/sub) 来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。
简单来说发布订阅 (pub/sub) 可以分发消息,但无法记录历史消息。
而 Redis Stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失

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

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

相关文章

云原生个人线路 Docker容器化

声明:此文章为博主个人学习记录,仅供学习和交流,如有侵权请联系博主。 Docker 基于Linux 内核的Cgroup,Namespace,以及Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术&#x…

Windows权限提升—MySQL数据库提权

Windows权限提升—MySQL数据库提权1. 前言2. 数据库提权介绍2.1. 常见数据库端口2.2. MySQL数据库提权条件2.3. MySQL数据库提权类型3. MySQL中UDF提权3.1. UDF提权介绍3.2. UDF提权思路3.3. UDF提权步骤3.3.1. 获取外连数据库3.3.1.1. 外连数据库3.3.1.2. 连接数据库3.3.1.3. …

python+vue 基于推荐算法的在线电影视播放网站

以广大影视剧迷们为研究对象,深入了解影视剧迷对在线视频观看视频的需求进行分析,形成系统需求分析设计一个符合影视剧迷们需求的在线视频网站。设计网站的前期工作包括对系统的各个功能进行详细分析,对数据库设计进行详细的描述,…

hadoop之MapReduce框架原理

目录 MapReduce框架的简单运行机制: Mapper阶段: InputFormat数据输入: 切片与MapTask并行度决定机制: job提交过程源码解析: 切片逻辑: 1)FileInputFormat实现类 进行虚拟存储 &#x…

9.Nuxt.js的使用

九.Nust.js的使用 1.什么是SEO 2.百度的搜索结果 3.服务器端和客户端渲染 4.Nuxt.js技术简介 5.Nuxt.js的路由(使用提供的nuxt-app项目初始化) 6.Nuxt.js的页面布局和整体配置 7.Nuxt.js整合axios 九.Nust.js的使用 1.什么是SEO ①SEO SEO是通…

elasticSearch数据存储与搜索基本原理

1.缘起: 为啥想学习es,主要是在工作中会用到,但是因为不了解原理,所以用起来畏手畏脚的,就想了解下es是怎么存储数据,以及es是怎么搜索数据的,我们平时应该如何使用es,以及使用时候…

springboot+jwt令牌简单登录案例

1. 什么是JWT?JSON Web Token JSON Web Token (JWT)是⼀个开放标准(RFC 7519),它定义了⼀种紧凑的、⾃包含的⽅式,⽤于 作为JSON对象在各⽅之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 1.1 什么时候应该⽤…

【Linux】应用层协议—http

🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…

DevData Talks | 微众银行有哪些研发效能实践与思考?一起来拓展认知边界!

本期 DevData Talks 直播活动中,我们非常高兴地邀请到了微众银行研发效能负责人余伟老师与我们分享微众银行在研发效能实践方面的经验与方法。 微众银行是一家面向互联网的银行,从诞生之日起就一直致力于快速迭代、稳健可靠的业务支持。面对金融和互联网…

ORACLE EBS 系统架构与应用实践(二)

四、ORACLE EBS的系统集成性 这里的所谓系统“集成性”,既非指“技术层面”的集成,也非指模块“应用层面”的集成,而是指企业管理发展过程中内在“核心要素”的集成。有人以为,一个ERP产品所包含的模块数量足够多、企业上线的模块…

【大数据基础】基于信用卡逾期数据的Spark数据处理与分析

https://dblab.xmu.edu.cn/blog/2707/ 实验过程 数据预处理 本次实验数据集来自和鲸社区的信用卡评分模型构建数据,以数据集cs-training.csv为分析主体,其中共有15万条记录,11列属性。 每个数据包含以下字段: 字段名称 字段含义…

【PyTorch】第四节:梯度下降算法

作者🕵️‍♂️:让机器理解语言か 专栏🎇:PyTorch 描述🎨:PyTorch 是一个基于 Torch 的 Python 开源机器学习库。 寄语💓:🐾没有白走的路,每一步都算数&#…

java--HtmlUnit--模拟浏览器操作--自动化操作浏览器--自动登录校园网为案例

写在前面: 闲来无事,因为宿舍每次嫌登录校园网有点免费。然后想着能不能一键自动化实现。然后更麻烦了,哈哈哈。不过倒是写一次代码就可以了。 可能不是特别系统,因为资料太少了。都是案例驱动找的资料。花了3大节课才搞完了。 会…

Redis运维之swap影响及解决方案

一、操作系统SWAP swap空间对于操作系统来说比较重要,当我们使用操作系统的时候,如果系统内存不足,常常会将一部分内存数据页进行swap操作,以解决临时的内存困境。swap空间由磁盘提供,对于高并发场景下,sw…

全球土壤湿度数据获取方法

土壤湿度亦称土壤含水率,表示土壤干湿程度的物理量。是土壤含水量的一种相对变量。通常用土壤含水量占干土重的百分数是示,亦称土壤质量湿度,如用土壤水分容积占土壤总容积的百分数表示,则称土壤容积湿度。通常说的土壤湿度&#…

Vivado中VIO IP核的使用

Vivado中VIO IP核的使用一、写在前面二、VIO IP核配置三、VIO联调四、写在后面一、写在前面 Vivado中的VIO(Virtual Input/Output) IP核是一种用于调试和测试FPGA设计的IP核。它允许设计者通过使用JTAG接口读取和写入FPGA内部的寄存器,从而检…

【JavaEE】关于synchronized总结-Callable用法及JUC的常见问题

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶synchronized原理是什么?synchronized到底有什么特点,synchronized的锁策略是什么,是怎么变化的呢?本篇文章总结出, Synchronized 具有以下特性…

【Java|golang】1041. 困于环中的机器人

在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意: 北方向 是y轴的正方向。 南方向 是y轴的负方向。 东方向 是x轴的正方向。 西方向 是x轴的负方向。 机器人可以接受下列三条指令之一: “G”:直走 1 个单位 “L”&…

Markdown 语法大全

Markdown是一种轻量级标记语言,常用于撰写博客、文档、论文等。它可以让你使用易读易写的纯文本格式来编写文档,然后通过转换成有效的HTML文档进行发布。以下是Markdown常用的语法: 这里写目录标题标题列表引用一级引用嵌套引用粗体和斜体删除…

技术复盘(1)--redis

技术复盘--redis技术复盘(1)--redis资料地址准备工作发展史redis-windowsredis-windows-说明redis-centos7安装jdk安装redisredis-key基本命令redis-string命令redis-list命令redis-set命令redis-hash命令redis-zset命令redis-geospatial命令redis-hyperloglog命令redis-bitmap…