• Redis五种常用数据类型有哪些?对应的数据存储空间又是怎样的?带你从零开始学习



    大家好,我是卷心菜。本篇主要讲解Redis数据库的五种常用数据类型及其数据存储空间的简单介绍,如果您看完文章有所收获,可以三连支持博主哦~,嘻嘻。


    一、什么是Redis?

    • REmote DIctionary Server(Redis) 是一个key-value存储系统。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
    • 本篇文章所要介绍的数据类型,是针对值(value)的,而不是key。

    二、客户端连接Redis

    • 本篇文章的所有操作都是在Linux系统下进行的
    • 使用Redis的客户端操作Redis数据库,首先要开启Redis的服务端,然后在使用如下命令行连接Redis服务器:
    [root@shtlinux redis-6.2.6]# cd /usr/local/bin/
    [root@shtlinux bin]# redis-cli -a 123456
    Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
    127.0.0.1:6379> ping
    PONG
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、Redis数据存储格式

    • redis 自身是一个 Map,其中所有的数据都是采用 key-value 的形式存储
    • 数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串
      在这里插入图片描述

    四、字符串(String)

    • Redis 字符串数据类型的相关命令用于管理 redis 字符串值
    • 存储的数据:单个数据,最简单的数据存储类型,也是最常用的数据存储类型
    • 存储数据的格式:一个存储空间保存一个数据
    • 存储内容:通常使用字符串,如果字符串以整数的形式展示,可以作为数字操作使用
      在这里插入图片描述

    下图列出了redis字符串的常用命令:

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

    注意:这些指令一定要亲自敲一遍,熟能生巧。对于不会的指令操作,可以看官方文档。


    五、哈希(hash)

    • 对于前面讲到的字符串类型,如果存储的是对象类数据,具有较频繁的更新需求操作会显得很麻烦,所有就有了哈希数据结构。
    • 新的存储需求:对一系列存储的数据进行编组,方便管理,典型应用存储对象信息。
    • 需要的存储结构:一个存储空间保存多个键值对数据。
    • hash类型:底层使用哈希表结构实现数据存储。

    在这里插入图片描述

    hash类型数据操作的注意事项:

    • hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取到,对应的值为(nil)
    • 每个 hash 可以存储 232 - 1个键值对
    • hash类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性。但hash设计初衷不是为了存储大量对象而设计的,切记不可滥用,更不可以将hash作为对象列表使用
    • hgetall 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就很会低,有可能成为数据访问瓶颈

    下图列出了redis哈希的常用指令:

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


    六、列表(list)

    • 数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分。
    • 需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序。
    • list类型:保存多个数据,底层使用双向链表存储结构实现。

    在这里插入图片描述
    list类型数据操作注意事项:

    • list中保存的数据都是string类型的,数据总容量是有限的,最多232-1个。
    • list具有索引的概念,但是操作数据时通常以队列的形式进行入队出队操作,或以栈的形式进行入栈出栈操作。
    • 获取全部数据操作结束索引设置为-1
    • list可以对数据进行分页操作,通常第一页的信息来自于list,第二页及更多的信息通过数据库的形式加载。

    下图列出了redis列表的常用指令:

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


    七、集合(Set)

    • 新的存储需求:存储大量的数据,在查询方面提供更高的效率。
    • 需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询。
    • set类型:与hash存储结构完全相同,仅存储键,不存储值(nil),并且值是不允许重复的。

    在这里插入图片描述
    set类型数据操作的注意事项:

    • set类型不允许数据重复,如果添加的数据在set中已经存在,将只保留一份。
    • set虽然与hash的存储结构相同,但是无法启用hash中存储值的空间。

    下图列出了redis集合set的常用指令:

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


    八、有序集合(sorted set)

    • 新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式。
    • 需要的存储结构:新的存储模型,可以保存可排序的数据。
    • sorted_set类型:在set的存储结构基础上添加可排序字段。

    在这里插入图片描述
    sorted_set类型数据操作的注意事项:

    • score保存的数据整数范围是:-9007199254740992~9007199254740992
    • score保存的数据也可以是一个双精度的double值,基于双精度浮点数的特征,可能会丢失精度,使用时候要慎重
    • sorted_set 底层存储还是基于set结构的,因此数据不能重复,如果重复添加相同的数据,score值将被反复覆盖,保留最后一次修改的结果

    下图列出了redis有序集合的常用指令:

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


    感谢阅读,一起进步,嘻嘻~

  • 相关阅读:
    手把手教你实现buffer(二)——内存管理及移动语义
    java毕业设计共享单车系统mybatis+源码+调试部署+系统+数据库+lw
    Java StringBuffer.reverse具有什么功能呢?
    六、数据仓库详细介绍(ETL)方法篇
    2022宁夏杯B题思路分析+代码(大学生就业问题分析)
    springcloud3 分布式事务实现逻辑思想2
    javacc之路5---词法分析器技巧
    centos7安装配置MySQL8
    elastic 概述
    第19章 特殊工具与技术【C++】
  • 原文地址:https://blog.csdn.net/weixin_59654772/article/details/125640600