【Redis】十大数据类型(上篇)

文章目录

    • 概述
      • 命令官网
      • Key命令
      • Redis 的过期时间设置有四种形式:
    • redis字符串(String)
      • 最最常用 `set key value`
      • 常用命令图示
      • 多值设置 `mset`、`mget`
      • 获取指定区间范围内的值 `getrange`、`setrange`
      • 数值增减 `INCR key`、`DECR key`
      • 获取内容长度及内容追加 `STRLEN key`、`APPEND key xxx`
      • 动态设置过期时间,分布式锁
      • 先弹出老值,再建新值 `getset`
    • redis列表 (List)
      • 常用命令图示
      • `lpush/rpush/lrange`
      • `lpop/rpop`
      • 按照索引下标获得元素(从上到下) `lindex`
      • 获取列表中的元素个数 `llen`
      • 根据值删除 `lrem key 数字N 给定值v1`
      • 截取索引范围内的,相当于删除索引外的 `ltrim key 开始index 结束index`
      • 移除列表的最后一个元素,并将该元素添加到另一个列表并返回`keyrpoplpush 源列表 目的列表`
      • 按照索引修改列表的元素 `lset key index value`
      • 在已有的值前面/后面插入新的值 `linsert key before/after 已有值 插入的新值`
    • redis哈希表(Hash)
      • 常用命令图示
      • `hset/hget/hmset/hmget/hgetall/hdel`
      • `hlen KEY`,获取hash内的kv键值对个数
      • `hexists KEY 在KEY里面的某个值的key` 判断某个值在不在里面
      • `hkeys/hvals KEY` 单独罗列key、单独罗列key对应的值
      • `hincrby/hincrbyfloat` 增加
      • `hsetnx KEY key value` 不存在赋值,存在了无效
      • 应用:购物车
    • redis集合 (Set)
      • 常用命令说明
      • 添加元素`SADD key member [member...]`
      • `SMEMBERS key` 遍历集合中的所有元素
      • `SISMEMBER key member` 判断元素是否在集合中
      • `SREM key member [member ...]` 删除元素
      • `scard key` 统计集合里面的元素个数
      • 从集合中随机展现设置的数字个数元素,元素不删除 `SRANDMEMBER key [数字]`
      • `SPOP key [数字]` 从集合中随机弹出一个元素,出一个删一个
      • `smove key1 key2 在key1里已存在的某个值` 将key1里已存在的某个值赋给key2
      • **重要,集合运算**
      • 应用:共同好友、推荐
    • redis有序集合 (ZSet)
      • 常用命令图示
      • 添加元素 `ZADD key score member [score member ...]`
      • 按照元素分数从小到大的顺序遍历出来 `ZRANGE key start stop [WITHSCORES]`
      • 倒序 `zrevrange`
      • `ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]` 获取指定分数范围的元素
      • `ZSCORE key member` 获取元素的分数
      • `ZCARD key` 获取集合中元素的数量
      • `zrem key 某score下对应的value值` 作用是删除元素
      • 增加某个元素的分数`ZINCRBY key increment member`
      • 获得指定分数范围内的元素个数`ZCOUNT key min max`
      • ZMPOP从键名列表中的第一个非空排序集中弹出一个或多个元素,它们是成员分数对
      • `zrank key values值`,作用是获得下标值
      • `zrevrank key values值`,作用是**逆序**获得下标值
      • 应用:根据商品销售对商品进行排序显示

概述

在这里插入图片描述
在这里插入图片描述

  • 命令官网

    • 英文版:https://redis.io/commands/
    • 中文版:http://redis.cn/commands.html/
  • Key命令

    命令不区分大小写,但是key区分

    命令说明
    keys *查看当前库所有的key
    exists key判断某个key是否存在,返回1表示存在,返回0表示不存在
    type key查看你的key是什么类型
    del key删除指定的key数据
    unlink key非阻塞删除,仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中操作
    ttl key查看还有多少秒过期,-1表示永不过期,-2表示已过期
    expire key 秒数给定的key设置过期时间
    move key dbindex【0-15】将当前数据库的 key移动到给定的数据库 db 当中
    select dbindex切换数据库[0-15] ,默认为0,配置文件中databases 16
    dbsize查看当前数据库key的数量
    flushdb清空当前库
    flushall通杀全部库
  • Redis 的过期时间设置有四种形式:

    • EXPIRE 秒——设置指定的过期时间(秒),表示的是时间间隔。
    • PEXPIRE 毫秒——设置指定的过期时间,以毫秒为单位,表示的是时间间隔。
    • EXPIREAT 时间戳-秒——设置指定的 Key 过期的 Unix 时间,单位为秒,表示的是时间/时刻。
    • PEXPIREAT 时间戳-毫秒——设置指定的 Key 到期的 Unix 时间,以毫秒为单位,表示的是时间/时刻。

redis字符串(String)

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

  • 最最常用 set key value

    set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]

    在这里插入图片描述
    在这里插入图片描述

  • 常用命令图示

    在这里插入图片描述
    在这里插入图片描述

  • 多值设置 msetmget

    • mset
      • 同时设置一个或多个 key-value 对
    • mget
      • 获取所有(一个或多个)给定 key 的值
  • 获取指定区间范围内的值 getrangesetrange

    • getrange

      类似between…and的关系

      • 从零到负一表示全部
    • setrange

      设置指定区间范围内的值,格式是setrange key值 具体值
      起到覆盖

  • 数值增减 INCR keyDECR key

    一定要数值类型数据

    • INCR key

      递增

      • INCR key increment
    • DECR key

      递减

      • DECR key increment
  • 获取内容长度及内容追加 STRLEN keyAPPEND key xxx

    • STRLEN key

      长度

    • APPEND key xxx

      内容追加

  • 动态设置过期时间,分布式锁

    • SETEX key 秒数 value
      在这里插入图片描述
    • key不存在时才设置 SETNX key value
      在这里插入图片描述
  • 先弹出老值,再建新值 getset

    在这里插入图片描述

redis列表 (List)

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

  • 常用命令图示

    在这里插入图片描述
    在这里插入图片描述

  • lpush/rpush/lrange

    没有rrange

    在这里插入图片描述

  • lpop/rpop

    出栈,弹出元素

    在这里插入图片描述

  • 按照索引下标获得元素(从上到下) lindex

    在这里插入图片描述

  • 获取列表中的元素个数 llen

    在这里插入图片描述

  • 根据值删除 lrem key 数字N 给定值v1

    解释(删除N个值等于v1的元素),LREM list3 0 值,表示删除全部给定的值。零个就是全部值

    在这里插入图片描述

  • 截取索引范围内的,相当于删除索引外的 ltrim key 开始index 结束index

    截取指定索引区间的元素,格式是ltrim list的key 起始索引 结束索引

    在这里插入图片描述

  • 移除列表的最后一个元素,并将该元素添加到另一个列表并返回keyrpoplpush 源列表 目的列表

    在这里插入图片描述

  • 按照索引修改列表的元素 lset key index value

    在这里插入图片描述

  • 在已有的值前面/后面插入新的值 linsert key before/after 已有值 插入的新值

    在这里插入图片描述

redis哈希表(Hash)

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)
本质就是KV,K不变的情况下,V拆分新的kv

redis集合 (Set)

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

redis有序集合 (ZSet)

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Android的停车场车位预约系统app-动态计算停车时长-公告-反馈

在设计时,用现代多媒体技术对 进行存储、加载智能码、调用、对比及识别,使得进出的车辆同时处于该系统电脑的监控之下,创建车库管理与车牌识别两者完美结合的管理流程。 智能停车场收费管理系统是一种高效快捷、公正准确、科学经济的停车场管理手段,是停…

工具:dumpbin.exe : COFF DLL 动态库依赖库 :VS工具

摘要: 速度快,不会像depend.dll 那样卡顿。但是无法查看调用dll 调用的dll,所以不如depend.exe 好用。查看方式不如depend.exe 直观。 总结:** 可能不怎么用** 介绍: dumpbin.exe是微软二进制文件转储器。显示有关…

字节跳动软件测试岗,前两面过了,第三面被面试官吊打,结局我哭了

阎王易见,小鬼难缠。我一直相信这个世界上好人居多,但是也没想到自己也会在阴沟里翻船。我感觉自己被字节跳动的HR坑了。 在这里,我只想告诫大家,offer一定要拿到自己的手里才是真的,口头offer都是不牢靠的&#xff0…

Uni-Mol: A Universal 3D Molecular Representation Learning Framework

Uni-Mol: 一个通用的三维分子表示学习框架 ICLR 2023 Uni-Mol 论文:Uni-Mol: A Universal 3D Molecular Representation Learning Framework | OpenReview Uni-Mol 代码::GitHub - dptech-corp/Uni-Mol: Official Repository for the Uni-Mo…

Python:《寻找整数》

问题描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 有一个不超过 1017 的正整数 n,知道这个数除以 2 至 49 后的余数如下表所示,求这个正整数最小是多少。 运行限制 最大运行时间:…

辉煌优配|人民币将可直接买港股 多家港股公司申请 增设人民币柜台

3月以来,多家港股公司发布公告称,已正式提交有关增设人民币货台的请求。这意味着港交所力推的港股“港币-人民币双货台形式”进入实质性推进阶段,离岸人民币行将迎来愈加丰富的出资标的。 多位业内人士表明,树立双货台形式是港交所…

Java设计模式(十七)—— 组合模式

组合模式的定义如下:将对象组合成树形结构以表示“部分-整体”的层次结构,让用户对单个对象和组合对象的使用具有一致性。 适用组合模式的情景如下: 希望表示对象的“部分—整体”层次结构希望用户用一致方式处理个体和组合对象一、问题的提…

这是一篇能够教会你运营阿里巴巴国际站的文章

对于很多跨境人来说,运营真的是一个让人头疼的大事情。不知道要从哪个方面下手,不知道要往哪方面努力等等问题都是很常见的,所以今天龙哥就解剖一下阿里巴巴国际站的运营方法,简单地给大家讲一下要掌握哪些方面的知识。运营这条路…

【数据结构篇C++实现】- 哈希表

文章目录🚀一、哈希表的原理精讲🚢(一)概念🚢(二)常见哈希函数的构造方法1.直接定址法2.数字分析法3.平方取中法4.除留余数法5.随机数法🚢(三)哈希冲突与处理…

web服务器—nginx

一、nginx介绍Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。和apache一样,都是web服务器软件,因为其性能优异,所以被广大运维喜欢。又因…

【python】【protobuf】逆向还原protobuf结构

文章目录一、前言二、示例三、python demo一、前言 在很多场景,都有一个需求: 得到了一个编码后的protobuf数据(比如竞品调研的的数据包),需要逆向还原其proto结构文件。 有3种方案去做这件事情: 从编码入…

Linux常用文件管理命令

Linux常用文件管理命令 目录Linux常用文件管理命令前言常用命令练习题创建文件夹题目代码复制题目代码移动题目代码删除题目代码系列操作题目代码前言 本文将讲解我们在使用Linux操作系统时经常需要使用的命令,也可以当成是一篇笔记的记录,当然光看这些…

Ubuntu安装交叉编译器gcc

1.创建文件并把压缩包复制到文件夹下 2.解压到文件夹下 先找到放置的目录 也可以直接找到文件夹右键-在终端打开 通过-C选项指定解压后的目标目录 tar -jxvf gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.bz2 -C /opt 注意:输入文件名时可以Tab键自动补齐 输入…

计算机网络中端到端与点到点的区别

计算机网络中端到端与点到点的区别 数据传输的可靠性是通过数据链路层和网络层的点对点和传输层的端对端保证的。端到端与点到点是针对网络中传输的两端设备间的关系而言的。 在一个网络系统的不同分层中,可能用到端到端传输,也可能用到点到点传输。如…

限流、熔断、服务降级

在分布式系统中,如果某个服务节点发生故障或者网络发生异常,都有可能导致调用方被阻塞等待,如果超时时间设置很长,调用方资源很可能被耗尽。这又导致了调用方的上游系统发生资源耗尽的情况,最终导致系统雪崩。 举例&a…

[Vulfocus解题系列]Spring WebFlow 远程代码执行漏洞(CVE-2017-4971)

简介 Spring WebFlow 是一个适用于开发基于流程的应用程序的框架(如购物逻辑),可以将流程的定义和实现流程行为的类和视图分离开来。在其 2.4.x 版本中,如果我们控制了数据绑定时的field,将导致一个SpEL表达式注入漏洞…

科大奥瑞物理实验——声速的测量

实验名称:声速的测量 1. 实验目的: (1)了解超声波的发射和接收方法。 (2)加深对振动合成、波动干涉等理论知识的理解。 (3)掌握用驻波法和相位法测声速。 2. 实验器材&#xff1a…

如何挖掘用户需求的真正动机?关键是4大因素

需求分析实质是挖掘用户内心真正的目标,并转化为产品需求的过程。而用户需求是用户基于自身角度提出的表层需求,这些需求往往有用户期望的产品功能指向。而在产品功能指向的背后,暗藏着潜在的用户动机,这是用户真正希望解决的核心…

【尚硅谷】Java数据结构与算法笔记13 - 图

文章目录一、图的基本介绍1.1 为什么要有图1.2 图的举例说明1.3 图的常用概念二、图的表示方式2.1 邻接矩阵2.2 邻接表三、图的快速入门案例四、图的遍历4.1 深度优先遍历 DFS4.1.1 基本思想4.1.2 算法步骤4.1.3 图示4.2 广度优先遍历 BFS4.2.1 基本思想4.2.2 算法步骤4.2.3 图…

【机器学习】P8 过拟合与欠拟合、正则化与正则化后的损失函数和梯度下降

过拟合与欠拟合、正则化与正则化后的损失函数和梯度下降过拟合与欠拟合过拟合与欠拟合直观理解线性回归中 过拟合与欠拟合逻辑回归中 过拟合与欠拟合过拟合与欠拟合的解决办法过拟合解决方案欠拟合解决方案包含正则化的损失函数正则化线性回归损失函数正则化逻辑回归损失函数包…