redis类型介绍

154cdc71e8b44ec0a85e9573d89f41df.gif

 

1. 字符串(String):

 

    • 简介:最基础的数据类型,可以存储任何形式的字符串,包括文本数据和数字数据。

 

    • 常用操作:SET、GET、INCR、DECR等。

 

2. 列表(List):

 

    • 简介:有序的字符串列表,可以按照插入顺序向列表的头部或者尾部添加元素。

 

    • 常用操作:LPUSH(向列表左侧插入)、RPUSH(向列表右侧插入)、LPOP(从列表左侧弹出)、RPOP(从列表右侧弹出)、LRANGE(获取列表指定范围的元素)等。

 

    • 底层实现:通常使用双向链表或者压缩列表(ziplist)。

 

3. 集合(Set):

 

    • 简介:无序的字符串集合,集合中的元素是唯一的,不允许重复。

 

    • 常用操作:SADD(添加元素)、SREM(移除元素)、SMEMBERS(获取所有元素)、SISMEMBER(判断元素是否在集合中)等。

 

    • 底层实现:通常使用哈希表。

 

4. 有序集合(Sorted Set):

 

    • 简介:与集合类似,但是每个元素都会关联一个分数(score),元素会按照分数从小到大排序。

 

    • 常用操作:ZADD(添加元素及其分数)、ZREM(移除元素)、ZRANGE(按分数从小到大获取元素范围)、ZREVRANGE(按分数从大到小获取元素范围)、ZSCORE(获取元素的分数)等。

 

    • 底层实现:通常使用跳表(skiplist)和哈希表的组合。

 

5. 哈希(Hash):

 

    • 简介:键值对的集合,类似于一个小型的字典(或者 Java 中的HashMap)。哈希中的每个字段(field)都是一个键值对。

 

    • 常用操作:HSET(添加或更新字段)、HGET(获取字段的值)、HDEL(删除字段)、HGETALL(获取所有字段和值)等。

 

    • 底层实现:通常使用哈希表和压缩列表(ziplist,当字段较少时使用)。

 

6. 位图(Bitmaps):

 

    • 简介:不是一种独立的数据类型,而是基于字符串的一种位级别的操作。可以对字符串的每一位进行独立的设置(设置为 0 或 1)、获取和统计操作。

 

    • 常用操作:SETBIT(设置某一位的值)、GETBIT(获取某一位的值)、BITCOUNT(统计设置为 1 的位的数量)等。

 

7. HyperLogLog:

 

    • 简介:用于基数统计的算法,可以在非常小的空间内完成独立元素的数量统计(误差率约为 0.81%)。

 

    • 常用操作:PFADD(添加元素到 HyperLogLog)、PFCOUNT(获取 HyperLogLog 的基数估计值)、PFMERGE(合并多个 HyperLogLog)等。

 

8. 地理空间索引(Geospatial):

 

    • 简介:用于存储地理位置信息,支持地理位置的查询和计算,比如计算两个地理位置之间的距离、查找指定范围内的地理位置等。

 

    • 常用操作:GEOADD(添加地理位置)、GEOPOS(获取地理位置的经纬度)、GEODIST(计算两个地理位置之间的距离)、GEORADIUS(查找指定范围内的地理位置)等。

 

9. 流(Streams):

 

    • 简介:Redis 5.0 引入的数据类型,用于构建日志系统或消息队列系统。支持消息的持久化、消费者组、消息确认等特性。

 

    • 常用操作:XADD(添加消息到流)、XREAD(读取消息)、XGROUP(创建或管理消费者组)、XACK(确认消息已被处理)等。

 

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

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

相关文章

免费送源码:Java+Springboot+MySQL Springboot多租户博客网站的设计 计算机毕业设计原创定制

Springboot多租户博客网站的设计 摘 要 博客网站是当今网络的热点,博客技术的出现使得每个人可以零成本、零维护地创建自己的网络媒体,Blog站点所形成的网状结构促成了不同于以往社区的Blog文化,Blog技术缔造了“博客”文化。本文课题研究的“…

家政服务小程序,家政行业数字化发展下的优势

今年以来,家政市场需求持续增长,市场规模达到了万亿级别,家政服务行业成为了热门行业之一! 家政服务种类目前逐渐呈现了多样化,月嫂、保姆、做饭保洁、收纳、维修等家政种类不断出现,满足了居民日益增长的…

炼码LintCode--数据库题库(级别:简单;数量:55道)--刷题笔记_02

目录 炼码LintCode--数据库题库(级别:简单;数量:55道)--刷题笔记_023618 耗时前三的任务(日期差)题:sql:解释:DATEDIFF 天数差order by 别名TIMESTAMPDIFF 月…

如何使用正则表达式验证域名

下面是一篇关于如何使用正则表达式验证域名的教程。 如何使用正则表达式验证域名 简介 域名是互联网上网站的地址,每个域名由多个标签(label)组成,标签之间用点 . 分隔。域名规则有很多细节,但基本要求是&#xff1a…

猫狗识别之BUG汇总

一、github登不上去问题 下载watt toolkit 下载地址:https://steampp.net/ 可以下载后加速,访问github 二、猫狗总体参考核心 B哥的博客 https://github.com/bubbliiiing/classification-keras?tabreadme-ov-file 三、CSDN很多会员才能阅读问题 根据…

MATLAB 使用教程 —— 命令窗口输入命令,工作区显示变量

命令在命令窗口输入变量在工作区显示 MATLAB 桌面包含的面板如下: 当前文件夹 - 此面板允许访问项目文件夹和文件。命令窗口 - 这是主要区域,用户在命令行中输入命令,命令提示符(>>).工作区 - 工作区显示所有变量,无论是创…

nodejs入门(1):nodejs的前后端分离

一、引言 我关注nodejs还是从前几年做了的一个电力大数据展示系统开始的,当然,我肯定是很多年的计算机基础的,万变不离其宗。 现在web网站都流行所谓的前后端结构,不知不觉我也开始受到这个影响,以前都是前端直接操作…

前端开发之打印功的使用和实例(vue-print-nb)

通过插件来进行实现 前言效果图1、安装插件vue2vue32、 引入Vue项目2、 使用2.1、在项目中创建按钮并且使用v-print绑定绑定打印事件2.2、编写要打印的内容,给内容附加唯一的id2.3、绑定的时间的方法和参数3、整体代码(此代码是通过vue3来进行实现的但是逻辑都是一样的)前言…

一文简单了解Android中的input流程

在 Android 中,输入事件(例如触摸、按键)从硬件传递到应用程序并最终由应用层消费。整个过程涉及多个系统层次,包括硬件层、Linux 内核、Native 层、Framework 层和应用层。我们将深入解析这一流程,并结合代码逐步了解…

opencv kdtree pcl kdtree 效率对比

由于项目中以一个环节需要使用kdtree ,对性能要求比较严苛&#xff0c;所以看看那个kdtree效率高一些。对比了opencv和pcl。 #include <array> #include <deque> #include <fstream> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp…

学习日志011--模块,迭代器与生成器,正则表达式

一、python模块 在之前学习c语言时&#xff0c;我们学了分文件编辑&#xff0c;那么在python中是否存在类似的编写方式&#xff1f;答案是肯定的。python中同样可以实现分文件编辑。甚至还有更多的好处&#xff1a; ‌提高代码的可维护性‌&#xff1a;当代码被分成多个文件时…

idea 弹窗 delete remote branch origin/develop-deploy

想删除远程分支&#xff0c;就选delete&#xff0c;仅想删除本地分支&#xff0c;选cancel&#xff1b; 在 IntelliJ IDEA 中遇到弹窗提示删除远程分支 origin/develop-deploy&#xff0c;这通常是在 Git 操作过程中出现的情况&#xff0c;可能是在执行如 git branch -d 或其他…

湘潭大学软件工程算法设计与分析考试复习笔记(一)

文章目录 前言随机类&#xff08;第七章&#xff09;随机概述数值随机化舍伍德拉斯维加斯蒙特卡罗 模拟退火遗传人工神经网络 回溯&#xff08;第五章&#xff09;动态规划&#xff08;第四章&#xff09;后记 前言 考试还剩十一天&#xff0c;现在准备开始复习这门课了。好像全…

Linux性能优化之火焰图的起源

Linux火焰图的起源与性能优化专家 Brendan Gregg 密切相关&#xff0c;他在 2011 年首次提出这一工具&#xff0c;用于解决性能分析过程中可视化和数据解读的难题。 1. 背景&#xff1a;性能优化的需求 在现代计算中&#xff0c;性能优化往往需要对程序执行中的热点和瓶颈进行…

【论文精读】GOT-OCR2.0源码论文——打破传统OCR流程的多模态视觉-语言大模型架构:预训练VitDet 视觉模型+ 阿里通义千问Qwen语言模型

作为本系列的开篇文章&#xff0c;首先定下本系列的整体基调。论文精读系列&#xff0c;旨在记录研读深度学习、强化学习相关论文的个人心得和理解&#xff0c;仅供参考&#xff0c;欢迎指正错误和研究探讨。 所有文章只会摘选论文部分进行分析&#xff0c;且不一定按原文行文顺…

使用 Qt 实现基于海康相机的图像采集和显示系统(不使用外部视觉库,如Halcon\OpenCv)[工程源码联系博主索要]

本文将梳理一个不借助外部视觉库&#xff08;如 OpenCV/Halcon&#xff09;的海康相机图像采集和显示 Demo。该程序直接使用 Qt GUI 来显示图像。通过海康 MVS SDK 实现相机的连接、参数设置、图像采集和异常处理等功能&#xff0c;并通过 Qt 界面展示操作结果。 1. 功能概述 …

在Ubuntu22.04上源码构建ROS noetic环境

Ubuntu22.04上源码构建ROS noetic 起因准备环境创建工作目录并下载源码安装编译依赖包安装ros_comm和rosconsole包的两个补丁并修改pluginlib包的CMakeLists的编译器版本编译安装ROS noetic和ros_test验证 起因 最近在研究VINS-Mono从ROS移植到ROS2&#xff0c;发现在编写feat…

C++——类和对象(part2)

前言 本篇博客继续为大家介绍类与对象的知识&#xff0c;承接part1的内容&#xff0c;本篇内容是类与对象的核心内容&#xff0c;稍微有些复杂&#xff0c;如果你对其感兴趣&#xff0c;请继续阅读&#xff0c;下面进入正文部分。 1. 类的默认成员函数 默认成员函数就是用户…

matlab实现主成分分析方法图像压缩和传输重建

原创 风一样的航哥 航哥小站 2024年11月12日 15:23 江苏 为了研究图像的渐进式传输技术&#xff0c;前文提到过小波变换&#xff0c;但是发现小波变换非常适合传输缩略图&#xff0c;实现渐进式传输每次传输的数据量不一样&#xff0c;这是因为每次变换之后低频成分大约是上一…

【HarmonyOS】鸿蒙系统在租房项目中的项目实战(二)

从今天开始&#xff0c;博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”&#xff0c;对于刚接触这项技术的小伙伴在学习鸿蒙开发之前&#xff0c;有必要先了解一下鸿蒙&#xff0c;从你的角度来讲&#xff0c;你认为什么是鸿蒙呢&#xff1f;它出现的意义又是…