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.mzph.cn/news/832448.shtml

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

相关文章

Java面试题:多线程3

CAS Compare and Swap(比较再交换) 体现了一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性. 线程A和线程B对主内存中的变量c同时进行修改 在线程A中存在预期值a,修改后的更新值a1 在线程B中存在预期值b,修改后的更新值b1 当且仅当预期值和主内存中的变量值相等…

MYSQL基础架构、执行过程分析、事务的实现、索引的选择、覆盖索引

本文是mysql45讲的1-5的总结 文章目录 基础架构连接器分析器优化器执行器SQL查询执行过程详细执行步骤 SQL更新执行过程重要的日志模块&#xff1a;redo log重要的日志模块&#xff1a;binlog阶段性提交 事务事务隔离的实现启动 索引数据库索引模型InnoDB索引组织结构主键选择…

【数据可视化-02】Seaborn图形实战宝典

Seaborn介绍 Seaborn是一个基于Python的数据可视化库&#xff0c;它建立在matplotlib的基础之上&#xff0c;为统计数据的可视化提供了高级接口。Seaborn通过简洁美观的默认样式和绘图类型&#xff0c;使数据可视化变得更加简单和直观。它特别适用于那些想要创建具有吸引力且信…

从零开始学RSA: [WUSTCTF2020]情书等5题

1 [WUSTCTF2020]情书 题目 Premise: Enumerate the alphabet by 0、1、2、..... 、25 Using the RSA system Encryption:0156 0821 1616 0041 0140 2130 1616 0793 Public Key:2537 and 13 Private Key:2537 and 937flag: wctf2020{Decryption}解题 前提&#xff1a;用0、…

IP路由:构建高效网络的基石

目录 前言 一. IP数据报交付 二. IP路由 1.IP路由器 2.IP路由表 3.特定主机路由与默认路由 4.路由解析 5.路由选择过程 三. 路由协议 1.静态路由与动态路由 2.内部网关协议与外部网关协议 3.距离向量路由协议和链路状态路由协议 四. RIP协议 1.概述 2.工作原理 3.报文格式 …

高效、精准:皮秒激光切割机在陶瓷基板加工中的应用

皮秒激光切割机&#xff08;激光划片机&#xff09;在陶瓷基板切割领域具有显著的优势和潜力&#xff0c;主要体现在以下几个方面&#xff1a; 1. 高精度&#xff1a;皮秒激光切割机能够实现极高的切割精度&#xff0c;对于陶瓷基板这种需要精细加工的材料尤为重要。它能够在不…

【网络原理】IP协议详解

一.与IP协议相关的基本概念 IP协议&#xff0c;即网际互连协议&#xff08;Internet Protocol&#xff09;&#xff0c;是TCP/IP体系中的核心网络层协议。 网络层IP协议解决的问题 数据传输的过程中,不是直接进行的传输,而是经过层层的封装和分用的过程才能到达对端. IP协议主…

springboot中多线程问题的优化和处理

自定义线程池,解决线程占满没有响应的问题 1、 首先进行创建配置类,通知bean容器进行创建线程池,对线程进行管理 Configuration EnableAsync public class ThreadPoolConfig {Bean(name "zpPool")public ThreadPoolExecutor zpPool() {return new ThreadPoolExecu…

13 【PS作图】人物绘画理论-脸型

三庭五眼 三庭&#xff1a;脸的长度比例 &#xff08;1&#xff09;发际线到眉毛 &#xff08;2&#xff09;眉毛到鼻底 &#xff08;3&#xff09;鼻底到下巴 三个部分大致为三等分 五眼&#xff1a;脸的宽度比例 以眼睛长度为单位&#xff0c;把脸的宽度分成五等分&#x…

day1Qt作业

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {this->resize(540,415);//窗口大小this->setFixedSize(540,415);//固定窗口大小this->setWindowTitle("QQ");//标题this->setWindowIcon(QIcon("E:\\hqyjap…

Java构造器

构造器 无参构造器有参构造器构造方法VS成员方法总结 概念&#xff1a;也称构造方法、构造函数。作用是构造出来一个类的实例&#xff0c;确保对象得到初始化。 格式&#xff1a; 权限修饰符 类名(无参/有参){ }。 分类&#xff1a; 带参数&#xff1a;有参构造器不带参数&am…

大数据在互联网领域的“九大”应用

当下越来越多的应用涉及到大数据&#xff0c;而这些大数据的属性&#xff0c;包括数量&#xff0c;速度&#xff0c;多样性等等都呈现出大数据不断增长的复杂性&#xff0c;所以大数据的分析方法在大数据领域就显得尤为重要&#xff0c;目前互联网大数据运用的九大领域&#xf…

网络演进技术演进:裸纤专线、SDH、MSTP+、OTN、PTN、IP-RAN

前言 文章主要介绍常见名词以及其在各自领域实现的功能价值。 01 裸纤 裸光纤&#xff08;裸光纤&#xff09;由运营商提供&#xff0c;是无中继的光纤线路&#xff0c;仅通过配线架连接。相比传统光纤&#xff0c;裸光纤提供纯粹的物理传输路径&#xff0c;无需额外网…

优化百度SEO:蜘蛛池自动收录的秘诀(蜘蛛池秒收录)

蜘蛛池自动收录技术解析 百度作为国内最大的搜索引擎之一&#xff0c;在网络搜索领域拥有巨大的影响力。对于网站主来说&#xff0c;如何让自己的网站在百度搜索结果中排名靠前&#xff0c;成为关注的焦点。其中&#xff0c;SEO&#xff08;SearchEngineOptimization&#xff…

第十五届蓝桥杯大赛软件赛省赛javaB组(蒟蒻赛时写的题

4个小时&#xff0c;下来感觉&#xff0c;迷迷糊糊的&#xff08;感觉写的题和没写一样&#xff0c;要么暴力&#xff0c;要么写写if els,感觉没有什么体验感。前两个填空题都是签到&#xff0c;第二个填空写的暴力&#xff0c;感觉跑了5分钟左右&#xff0c;其实是可以前缀和优…

Linux字符设备驱动-详解与实操:驱动架构、设备树、Pinctrl子系统和GPIO子系统、platform、设备树下的platform

如何编写一个驱动程序&#xff1a; &#xff08;1&#xff09;确定主设备号 &#xff08;2&#xff09;定义自己的file_operations结构体&#xff1a; 包含对应的open(drv_open)/read(drv_read)等设备操作函数&#xff0c;需要到内核中去注册 &#xff08;3&#xff09;实现…

09-python开发xss扫描器

一、基本思路 1、整体上的思路是发送一个带有Payload参数值的请求&#xff0c;从响应当中判断是否存在Payload(反射性XSS) 2、准备一份字典文件、尽可能包含更多的payload,并给每一个payload进行分类&#xff08;不同的类型匹配的要求不同&#xff09; import requests# 从响…

为什么需要自动化测试?自动化有哪些优势?

前言 自动化测试&#xff0c;最近些年可谓是大火。招聘上的要求也好&#xff0c;培训班的广告也罢&#xff0c;比比皆是&#xff0c;足以说明它在业内的火爆程度。 虽然说会写自动化测试并不能说明你就很牛批&#xff0c;但是你不会的话&#xff0c;那么很抱歉&#xff0c;你…

spring Ai框架调用openai大模型简易demo

前提&#xff1a; 需要科学上网&#xff0c;key没有官方的&#xff0c;就找中转的key1 pom依赖&#xff0c;注意添加的依赖和仓库配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xm…

【C++】从list模拟实现深入理解iterator

目录 前言 一、list节点类 二、迭代器类 三、list类 前言 在string与vector这类存储内存连续的容器中&#xff0c;iterator直接使用指针作为底层即可。但对于list这种存储内存不连续的容器&#xff0c;就不可能使用指针作为底层了。 本文我们将通过对list的学习及模拟实现…