【Redis】redis 十大数据类型 概述

在这里插入图片描述

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

【Redis】redis 十大数据类型 概述_第1张图片

redis十大数据类型

  • 一、redis字符串(String)
  • 二、reids列表(List)
  • 三、redis哈希表(Hash)
  • 四、redis集合(Set)
  • 五、redis有序集合(ZSet)
  • 六、redis地理空间(GEO)
  • 七、redis基数统计(HyperLoglog)
  • 八、redis位图(bitmap)
  • 九、redis位域(bitfield)
  • 十、redis流(Stream)



一、redis字符串(String)


  • String是redis最基本的类型,一个key对应一个value
  • String类型是二进制安全的,可存放任何数据,包括图片、序列化对象等。
  • 一个redis中的字符串value值大小最多512M



二、reids列表(List)


  • redis列表是简单的字符串列表,可添加元素至表头表尾
  • 底层实际是个双端链表,最多可包含2^32-1个元素(4294967295)



三、redis哈希表(Hash)


  • redis hash 是一个String类型的field(字段)和value(值)的映射表。
  • redis中每个hash可以存储2^32-1个键值对(40多亿)



四、redis集合(Set)


  • Redis的Set是String类型的无序不可重复集合,集合对象的编码可以是intset或者hashtable
  • Redis中Set集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1)
  • 集合中最多存放2^32-1个元素





五、redis有序集合(ZSet)


  • Zset和set一样都是String类型的不可重复集合,但是有序的。
  • ZSet集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1)
  • 每个元素都会关联一个double类型的分数,以此为集合成员进行由小到大的排序。



六、redis地理空间(GEO)


  • Redis在3.2版本以后增加了地理位置的处理
  • Redis GEO主要用于存储地理位置信息,并对存储的选项进行操作:
  • 1.添加地理位置的坐标
  • 2.获取地理位置的坐标
  • 3.计算两个地理位置间的距离
  • 4.根据用户给董定的经纬度坐标来获取指定范围内的地理位置集合。



七、redis基数统计(HyperLoglog)


  • HyperLoglog 是用来做基数统计的算法,优点在于当输入元素的数量或者体积非常大时,计算基数所需的空间总是固定且很小的。
  • Redis中每个HyperLoglog键只需要花费12KB内存,就可以计算接近2^64个不同元素的基数。
  • 但,HyperLoglog只会根据输入的元素来计算基数,无法存储输入元素本身,所以无法像集合那样返回输入的各个元素。



八、redis位图(bitmap)


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



九、redis位域(bitfield)


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



十、redis流(Stream)


  • Redis Stream 是Redis5.0新增的数据结构
  • 主要用于消息队列(MQ:Message Queue),Redis本身是一个Redis发布订阅(pub/sub)来实现消息队列的共嗯,但它有个缺点是消息无法持久化,出现网络断开,Redis宕机时消息会被丢弃。而Redis Stream提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。

你可能感兴趣的:(Redis,redis,数据库,缓存)