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

三、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有序集合的常用指令:

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


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

猜你喜欢

转载自blog.csdn.net/weixin_59654772/article/details/125640600
今日推荐