Redis 10大类型

0、10大类型基本概述

官网:Understand Redis data types | Docs

提前声明:这里说的数据类型是value的数据类型,key的类型都是字符串。

1、redis字符串(String)

String是redis最基本的数据类型,一个key对应一个value。

string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。

string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。

2、redis列表(List)

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

3、redis哈希表(Hash)

Redis Hash是一个string类型的field(字段)和value(值)的映射表,Hash特别适合用户存储对象。

Redis中每个Hash可以存储2^32-1个键值对(40多亿)。

4、redis集合(Set)

Redis的Set是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,集合对象的编码可以是intset或者Hashtable。

Redis中Set集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

集合中最大的成员数为2^32-1(4294967295,每个集合可存储40多亿个成员)。

5、redis有序集合(ZSet)

zset(sorted set:有序集合)。

Redis zset和Set一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。

zset的成员是唯一的,但是分数(score)却可以重复。

zset集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数是2^32−1。

6、redis地理空间(GEO)

Redis GEO主要用于存储地理位置信息,并对存储的信息进行操作,包括:

  • 添加地理位置的坐标。
  • 获取地理位置的坐标。
  • 计算两个位置之间的距离。
  • 根据用户给定的经纬度坐标来获取指定范围内的地址位置集合。

7、redis基数统计(HyperLogLog)

HyperLogLog是用来做基数统计基数统计的算法,HyperLogLog的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需要的空间总是固定且是很小的。

在Redis里面,每个HyperLogLog键只需要花费12KB内存,就可以计算接近2^64个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为HyperLogLog只会根据输入元素来计算基数,而不会存储输入元素本身,所以HyperLogLog不能像集合那样,返回输入的各个元素。

8、redis位图(bitmap)

由0和1状态表现的二进制位的bit数组

9、redis位域(bitfield)

通过bitfield命令可以一次性操作多个比特位域(指的是连续的多个比特位),它会执行一系列操作并返回一个响应数组,这个数组中的元素对应参数列表中的相应的执行结果。

说白了就是通过bitfield命令我们可以一次性对多个比特位域进行操作。

10、redis流(Stream)

Redis Stream是Redis5.0版本新增加的数据结构。

Redis Stream主要用于消息队列(MQ,Message Queue),Redis本身就是一个Redis发布订阅(pub/sub)来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis宕机等,消息就会被丢弃。

简单来说发布订阅(pub/sub)可以分发消息,但无法记录历史消息。

而Redis Stream提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。

redis常见数据类型操作命令

官网英文: Commands | Docs


 

本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!

创作不易,如果对你有点帮助的话麻烦点个赞支持一下!

新手小白,欢迎留言指正!

相关推荐

  1. 2.Redis10数据类型

    2024-04-27 02:44:01       43 阅读
  2. Redis10数据类型之Hash类型

    2024-04-27 02:44:01       30 阅读
  3. Redis7】10数据类型之Bitmap类型

    2024-04-27 02:44:01       33 阅读
  4. Redis7】10数据类型之HyperLogLog类型

    2024-04-27 02:44:01       34 阅读
  5. Redis7】10数据类型之Set类型

    2024-04-27 02:44:01       34 阅读
  6. redis常用5数据类型

    2024-04-27 02:44:01       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 02:44:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 02:44:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 02:44:01       87 阅读
  4. Python语言-面向对象

    2024-04-27 02:44:01       96 阅读

热门阅读

  1. vue3:组合式API和选项式API里分别如何使用store

    2024-04-27 02:44:01       37 阅读
  2. leetcode hot100_part25

    2024-04-27 02:44:01       32 阅读
  3. 选购AI智能电话机器人需要注意哪些事项

    2024-04-27 02:44:01       35 阅读
  4. leetcode刷题(python)——(七)

    2024-04-27 02:44:01       32 阅读
  5. AI Python 教程

    2024-04-27 02:44:01       43 阅读
  6. Python编程——常用的Python单行实现功能代码示例

    2024-04-27 02:44:01       36 阅读
  7. TS码流解析(三)PES

    2024-04-27 02:44:01       31 阅读
  8. 五、搭建 Videojs,实战网络直播

    2024-04-27 02:44:01       29 阅读
  9. 【QEMU系统分析之启动篇(十九)】

    2024-04-27 02:44:01       32 阅读
  10. draw.io: 开启图表绘制的无限可能

    2024-04-27 02:44:01       33 阅读
  11. draw.io使用心得

    2024-04-27 02:44:01       33 阅读
  12. draw.io使用心得

    2024-04-27 02:44:01       40 阅读
  13. 机器学习笔记-01

    2024-04-27 02:44:01       29 阅读
  14. 成为程序员后我都明白了什么?

    2024-04-27 02:44:01       37 阅读
  15. 某人的系统四分法(管理+ 规则+应用+对接)

    2024-04-27 02:44:01       37 阅读
  16. pandas分组聚合练习

    2024-04-27 02:44:01       37 阅读