Redis的数据类型及使用场景

redis命令大全官网: Commands | Docs (redis.io)

基本介绍

redis起初主要就是为了解决性能问题的,那么redis为什么快?

  1. 基于内存操作的,所以操作不需要跟磁盘进行交互,单次的执行会很快

  2. 命令执行是单线程 因为基于内存操作 单次执行时间反而比线程切换的时间快

  3. Redis本身就是一个k-v结构,类似hashmap 所以查询性能是接近O(1)的

  4. 底层的数据结构 比如说跳表、sds(空间换时间)

  5. 网络模型 IO多路复用

以下简单介绍redis的一些常见数据类型以及可以使用到的应用场景:

一、String 

基本指令:

应用场景:

1.  可以做缓存

2. token(过期时间)

3.incr (可以做计数相关的场景)

4.分布式ID

5.点赞数、评论数

6.软限流

7.短信验证次数、库存

二、Hash

基本指令

应用场景

1. hash 是缓存的k:<k,v>的形式 因此可以缓存对象型的数据

2. hincrby可以对对象中的value进行统计 因此可以应用于统计型的数据

3. 还可以用作购物车(但是不会做,只是做缓存)  这是因为redis是ap模型  优先保证可用,不会管数据的丢失

三、 list

存储有序的列表  元素可以重复

基本指令

lpush从左放  rpush是从右放

应用场景

1 所有的有序列表都适合

2. bloop可以设置多长时间弹出,并且不会阻塞其它指令。因此可以做阻塞的消息队列(但一般不用, 因为有完善的MQ组件 rabbit 以及rocket   都是采用ack机制 ap模型)

四、set

无序的集合(但全部是整型的时候是有序的)  元素是不可重复的  查询效率是接近O(1)的

基本指令

sadd 添加  smembers 获取所有  scard(获取元素个数) srandmember 随机获取元素 spop 随机弹出一个元素 sismember 随机判断 sdiff 差集 sinter 交集 sunion并集

应用场景

1. 抽奖(支持随机获取元素)

2.集合类的场景 比如共同的好友(由于支持交集 并集和差集)

五、sortset

有序的 不可重复的  如果score相同 就会根据key

基本指令

应用场景

由于需要给每个value设置一个score,因此可以应用于 排行榜六、

六、BitMap

存储的是一个二进制  比如: 00010001000010001

基本指令

setbit就是相当于把第几位的0设置为了1  因此 可以做一个统计,比如签到表 谁来上课了等等 

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

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

相关文章

数据库调优-连接池优化

先贴下连接池的相关配置&#xff1a; 连接池参数配置&#xff1a; 字段含义Max Number of Connections最大连接数&#xff1b;做性能测试时&#xff0c;可以填 0 。在开发的项目中按实际代码填写&#xff0c;默认是 20 。Max Wait(ms)在连接池中取回连接最大等待时间&#xf…

ECO 视频分类模型

ECO分类模型 ECO 分类模型&#xff0c;可以对视频进行分类&#xff0c;视频是静止画面的集合&#xff0c;并短时间内进行播放&#xff0c;在人眼中形成了视频&#xff0c;通过 FPS 单位进行计算&#xff0c;指的是每秒显示多少张图片。如果直接把图片组合一张大图&#xff0c;…

第十三届蓝桥杯决赛(国赛)真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 火柴棒数字试题 B: 小蓝与钥匙试题 C: 内存空间试题 D: 斐波那契数组试题 E: 交通信号试题 F: 数组个数试题 G: 六六大顺试题 H : \mathrm{H}: H: 选素数试题 I: 图书借阅试题 J \mathrm{J} J : 括号序列树 发现宝藏 前些天发现了一个…

苹果公司因iPad广告争议而道歉,承认“未达标”|TodayAI

周二&#xff0c;苹果公司发布了一则新的iPad Pro广告&#xff0c;引起了广泛争议&#xff0c;该公司随后发表道歉声明&#xff0c;承认这则广告“未达标”。这则名为“压碎&#xff01;”的广告意图展示全新的M4芯片iPad Pro的创意潜力&#xff0c;但却因其表现方式而备受批评…

基于FPGA的数字信号处理(8)--RTL运算的溢出与保护

前言 在做加、减、乘、除等运算时&#xff0c;经常会发生 溢出 的情况。比如1个4bits的计数器&#xff08;每个时钟累加1&#xff09;&#xff0c;在4’b1111 1 后&#xff0c;原本其期望值应该是 151 即16&#xff0c;但是4bits的寄存器能表示的最大值只是4‘b1111即15&…

进一步解读英伟达 Blackwell 架构、NVlink及GB200 超级芯片

2024年3月19日&#xff0c;英伟达CEO黄仁勋在GTC大会上公布了新一代AI芯片架构BLACKWELL&#xff0c;并推出基于该架构的超级芯片GB200&#xff0c;将助推数据处理、工程模拟、电子设计自动化、计算机辅助药物设计、量子计算和生成式 AI 等领域。 为了纪念杰出的数学家David H…

H5一键关注微信公众号或打开进入公众号页面

登录自己的公众号&#xff0c;写文章。 第一步&#xff1a;插入链接 第二步&#xff1a;公众号文章链接 输入要跳转的公众号名称&#xff0c;点击搜索。 第三部&#xff1a;选择任意一篇文章 确定&#xff0c; 会得到公众号文章链接 第四部&#xff1a;点击进去 将这个文…

2024年记一次Mingw64-13.2.0编译Qt6.6.3,包含文档编译。

My C Development. 前言&#xff1a;不包含qtwebengine。 一、准备文件 &#xff08;1&#xff09;mingw64-13.2.0 下载链接&#xff1a;&#xff0c;ucrt64_13.2_ucrt_posix_rev6_msys2.7z【蓝奏云】。 &#xff08;2&#xff09;qt6.6.3源码 下载链接&#xff1a;Downlo…

使用 Gitea 进行私有 Git 仓库管理

在本文中&#xff0c;我们将介绍如何使用 Gitea 搭建并管理私有 Git 仓库。Gitea 是一个轻量级的 Git 服务&#xff0c;提供了类似于 GitHub 的功能&#xff0c;适合个人和小团队使用。我们将通过以下步骤来完成搭建和配置 Gitea 服务器。 步骤一&#xff1a;安装 Gitea 首先…

【论文阅读】<YOLOP: You Only Look Once for PanopticDriving Perception>

Abstract 全视驾驶感知系统是自动驾驶的重要组成部分。一个高精度的实时感知系统可以帮助车辆在驾驶时做出合理的决策。我们提出了一个全视驾驶感知网络&#xff08;您只需寻找一次全视驾驶感知网络&#xff08;YOLOP&#xff09;&#xff09;&#xff0c;以同时执行交通目标检…

安卓实现视频录制与显示和翻转摄像头

权限&#xff1a; <!-- 相机权限 --> <uses-featureandroid:name"android.hardware.camera"android:required"false" /> <uses-permission android:name"android.permission.CAMERA" /><!-- 录音权限&#xff08;包括麦克…

RabbitMQ部署指南.md

RabbitMQ部署指南 1.单机部署 我们在Centos7虚拟机中使用Docker来安装。 1.1.下载镜像 方式一&#xff1a;在线拉取 docker pull rabbitmq:3.8-management方式二&#xff1a;从本地加载 在课前资料已经提供了镜像包&#xff1a; 上传到虚拟机中后&#xff0c;使用命令加载…