支持9种数据结构

  • string
  • list
  • hash
  • set
  • zset
  • bitmap
  • GEO
  • stream
  • hyperLogLog

应用场景

string

基本的key - value 数据类型,key是唯一标识,value是具体的值,value的值不仅仅可以是字符串,也可以是数字,value的可以容纳的做大数据长度是512M

list

一个有序的数据集,可以向list中的任意位置插入字符串,redis3.2版本之前list的底层是由双向链表或压缩列表实现,后面改用了quickLIst实现

hash

一个键值对集合

set

一个键值唯一的无序集合,支持求差集、并集、交集,可用于查找共同好友、控制用户唯一点赞等场景

zset

一个键值唯一的有序集合,相比set多了core的分值字段,对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序集合的元素值,一个是排序值。可以用于排行榜等场景,比如学生的成绩排名,游戏积分排名、视频播放排名、点赞排名

bitmap

即位图,是一串连续的二进制数组,可以通过offset偏移量来定位元素。bitmap使用计算机中最小的单位bit(0|1)来表示,只能有两种状态,多用于二只统计场景,比如用用户某天是否签到

1、该类型的时间复杂度是0(1),且非常节约存储空间,一个用户一天的签到只需要1bit来存储,一个用户一年的签到量仅需365bit(约45KB)
2、Bitmap 本身是用 String 类型作为底层数据结构实现的一种统计二值状态的数据类型,String 类型是会保存为二进制的字节数组,所以,Redis 就把字节数组的每个 bit 位利用起来,用来表示一个元素的二值状态,你可以把 Bitmap 看作是一个 bit 数组。

GEO

主要用于存储地理位置信息,坐标二维化,支持搜索某个坐标附件N公里内的其他信息。比如用于搜索附近的车辆、餐厅等

stream

支持消息订阅,订阅组等

hyperLogLog

是一种用于「统计基数」的数据集合类型,基数统计就是指统计一个集合中不重复的元素个数。但要注意,HyperLogLog 是统计规则是基于概率完成的,不是非常准确。可以用于统计UV等

Copyright © 运维知识库 all right reserved,powered by Gitbook文件修订时间: 2023-12-19 14:41:28

results matching ""

    No results matching ""