尚硅谷redis7-11-redis10大类型之总体概述

前提:我们说的数据类型一般是value的数据类型,key的类型都是字符串。

redis字符串【String】

string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。

string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

string是redis最基本的类型,一个key对应一个value

redis列表【List】

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

127.0.0.1:6379> LPUSH fruits apple banana
(integer) 2
127.0.0.1:6379> RPUSH fruits orange
(integer) 3
127.0.0.1:6379> LRANGE fruits 0 -1
1) "banana"
2) "apple"
3) "orange"

redis哈希表【Hash】

Redis hash 是一个string类型的field(字段)和 value(值)的映射表,hash特别适合用于存储对象。

Redis 中每个hash 可以存储 2^32-1键值对(40多亿)

// 设置用户user:1001 的id name email
HSET user:1001 id 1001 name "Alice" email "alice@example.com"//获取用户姓名
HGET user:1001 name

redis集合【Set】

Redis 的SetString类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,集合对象的编码可以是intset 或者 hashtable.

Redis中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

集合中最大的成员数为2^32-1(4294967295,每个集合可存储40多亿个成员)

redis有序集合【ZSet】

zset(sorted set:有序集合)
Redis zset 和set一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但分数(score)却可以重复。

zset集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为2^32-1

redis地理空间【GEO】

主要用于存储地理位置信息,并对存储的信息进行操作。包括:

添加地理位置的坐标。
获取地理位置的坐标。
计算两个位置之间的距离。
根据用户给定的经纬度坐标来获取指定范围内的地理位置集合

redis基数统计【HperLogLog】

HyperLogLog 是用来做基数统计的算法,HyperLogLog的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定且是很小的。|

在Redis里面,每个 HyperLogLog键只需要花费12KB内存,就可以计算接近2^64个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为HyperLogLog只会根据输入元素来计算基数,而不会储存输入元素本身,所以HyperLogLog不能像集合那样,返回输入的各个元素。

redis位图【bitmap】

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

redis位域【bitfield】

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

说白了就是通过bitfield命令我们可以一次性对多个比特位域进行操作。

redis流【Stream】

Redis Stream 主要用于消息队列(MQ. Message Queue),Redis本身是有一个Redis发布订阅(pub/sub)来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis宕机等,消息就公被丢弃。

简单来说发布订阅(pub/sub)可以分发消息,但无法记录历史消息。

而 Redis Stream提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失

redis常见数据类型操作命令

官网英文:https://redis.io/commands/

中文:http://www.redis.cn/commands.html

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

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

相关文章

【递归、搜索与回溯算法】专题一 递归

文章目录 0.理解递归、搜索与回溯1.面试题 08.06.汉诺塔问题1.1 题目1.2 思路1.3 代码 2. 合并两个有序链表2.1 题目2.2 思路2.3 代码 3.反转链表3.1 题目3.2 思路3.3 代码 4.两两交换链表中的节点4.1 题目4.2 思路4.3 代码 5. Pow(x, n) - 快速幂5.1 题目5.2 思路5.3 代码 0.理…

C#实现List导出CSV:深入解析完整方案

C#实现List导出CSV:深入解析完整方案 在数据交互场景中,CSV文件凭借其跨平台兼容性和简洁性,成为数据交换的重要载体。本文将基于C#反射机制实现的通用CSV导出方案,结合实际开发中的痛点,从基础实现、深度优化到生产级…

字符串day7

344 反转字符串 字符串理论上也是一个数组&#xff0c;因此只需要用双指针即可 class Solution { public:void reverseString(vector<char>& s) {for(int i0,js.size()-1;i<j;i,j--){swap(s[i],s[j]);}} };541 反转字符串 自己实现一个反转从start到end的字符串…

Grafana XSSOpenRedirectSSRF漏洞复现(CVE-2025-4123)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 前…

私服 nexus 之间迁移 npm 仓库

本文介绍如何将一个 Nexus 特定仓库中的 npm 包内容迁移到另一个 Nexus 特定仓库。此过程适用于需要重构仓库结构或合并仓库的场景。 迁移脚本 以下是完整的迁移脚本&#xff0c;它会自动完成以下操作&#xff1a; 从源仓库获取所有 npm 包列表下载每个包的 .tgz 文件解压并…

Django ToDoWeb 服务

我们的任务是使用 Django 创建一个简单的 ToDo 应用程序,允许用户添加、查看和删除笔记。我们将通过设置 Django 项目、创建 Todo 模型、设计表单和视图来处理用户输入以及创建模板来显示任务来构建它。我们将逐步实现核心功能以有效地管理 todo 项。 Django ToDoWeb 服务 …

阿里云服务器遭遇DDoS攻击?低成本第三方高防解决方案全解析

阿里云服务器因高性能和稳定性备受青睐&#xff0c;但其DDoS高防服务的价格常让中小企业望而却步。面对动辄每月数万元的防护成本&#xff0c;许多用户不禁疑问&#xff1a;能否通过第三方高防服务保护阿里云服务器&#xff1f;如何实现低成本高效防御&#xff1f; 本文将结合技…

2025山东CCPC补题

2025山东CCPC补题 目录 2025山东CCPC补题K - UNO&#xff01; &#xff08;双端队列的简单应用&#xff09;M - 第九届河北省大学生程序设计竞赛 &#xff08;二进制枚举模拟&#xff09;J - Generate 01 String 感觉这场比赛的题目挺不错的&#xff1b;没有说那些为了算法而算…

体绘制学习

一、基本概念 体绘制是对一个三维物体数据进行采样与拟合的过程。 在体绘制中用vtkVolume渲染数据 渲染数据类数据转换类几何渲染vtkActorvtkPolyDataMapper体渲染vtkVolumevtkVolumeRayCastMapper 体绘制常用算法如下。 光线投射法。 优点是可视化结果质量好。缺点是计算…

告别“盘丝洞”车间:4-20mA无线传输如何重构工厂神经网?

4-20ma无线传输是利用无线模块将传统的温度、压力、液位等4-20mA电流信号转换为无线信号进行传输。这一技术突破了有线传输的限制&#xff0c;使得信号可以在更广泛的范围内进行灵活、快速的传递&#xff0c;无线传输距离可达到50KM。达泰4-20ma无线传输模块在实现工业现场应用…

VB.NET与SQL连接问题解决方案

1.基本连接步骤 使用SqlConnection、SqlCommand和SqlDataReader进行基础操作&#xff1a; vb.net Imports System.Data.SqlClient Public Sub ConnectToDatabase() Dim connectionString As String "ServermyServerAddress;DatabasemyDataBase;Integrated Security…

ElasticSearch--DSL查询语句

ElasticSearch DSL查询文档 分类 查询类型功能描述典型应用场景示例语法查询所有匹配所有文档&#xff0c;无过滤条件数据预览/测试json { "query": { "match_all": {} } }全文检索查询对文本字段分词后匹配&#xff0c;基于倒排索引搜索框模糊匹配、多字段…

DDR4读写压力测试

1.1测试环境 1.1.1整体环境介绍 板卡&#xff1a; pcie-403板卡 主控芯片&#xff1a; Xilinx xcvu13p-fhgb2104-2 调试软件&#xff1a; Vivado 2018.3 代码环境&#xff1a; Vscode utf-8 测试工程&#xff1a; pcie403_user_top 1.1.2硬件介绍 UD PCIe-403…

在 Windows 上使用 WSL 安装 Ansible详细步骤

在 Windows 上使用 WSL&#xff08;Windows Subsystem for Linux&#xff09; 安装 Ansible 是目前最推荐的方式&#xff0c;因为 Ansible 本身是为 Linux 环境设计的&#xff0c;不支持原生 Windows 作为控制节点。 下面是一个 详细步骤指南 &#xff0c;帮助你在 Windows 上…

编写第一个ros程序

1.下载VScode 下载链接如下&#xff1a; Download Visual Studio Code - Mac, Linux, Windows 下载ARM64下的.deb文件 打开虚拟机&#xff0c;再rosnoetic下新建一个文件夹VSCODE&#xff0c;将windows下的文件导入该文件夹下如下图。 在该文件夹下右键选择在终端中打开 输入…

代码随想录算法训练营第60期第四十九天打卡

大家好&#xff0c;今天我们还是继续我们的动态规划章节&#xff0c;可能有的朋友已经开始厌倦了说为什么动态规划怎么这么多题目&#xff0c;大家可以想想我们前面其实刷过好几种类型的动态规划的经典题目比如说各式各样的背包问题当然包括0-1背包&#xff0c;完全背包&#x…

centos7.9离线升级内核到4.19.12详细教程

cenots7.9默认安装的内核版本是:3.10.0-1160.119.1.el7.x86_64,在安装nvidia显卡驱动的时候,提示内核版本过低,需要升级内核版本,升级完成之后,就可以顺利的安装上nvidia显卡驱动了,实测有效。 一、查看当前内核版本命令 uname -r二、下载离线内核的rpm包

Vue3 + TypeScript + el-input 实现人民币金额的输入和显示

输入人民币金额的参数要求&#xff1a; 输入要求&#xff1a; 通过键盘&#xff0c;只允许输入负号、小数点、数字、退格键、删除键、方向左键、方向右键、Home键、End键、Tab键&#xff1b;负号只能在开头&#xff1b;只保留第一个小数点&#xff1b;替换全角输入的小数点&a…

方正字库助力华为,赋能鸿蒙电脑打造全场景字体解决方案

2025年5月19日&#xff0c;搭载华为鸿蒙操作系统的鸿蒙电脑&#xff0c;面向用户推出集AI智能、互联流畅、安全保障和精致体验于一体的全新办公系统。作为鸿蒙生态核心字体服务商&#xff0c;方正字库为此次提供了全面的系统字体支持&#xff0c;涵盖中文、西文及符号三大类字库…

PHPStudy 一键式网站搭建工具的下载使用

目录 一、下载 PHPStudy二、安装步骤三、基本使用方法3.1 创建网站3.2 管理数据库3.3 软件管理3.4 自动启动3.5 配置管理 四、注意事项和进阶使用4.1 注意事项4.2 进阶使用 背景&#xff1a; 我们在学习和工作中&#xff0c;经常会遇到各种需要自己搭建环境的场景&#xff0c;这…