redis中的10大数据类型

  1. 字符串(String)

    stringredis 最基本的数据类型, 一个 key 对应一个 value

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

    string 类型的值最大占用空间是 512M, 但一般情况下不建议直接将图片存储到 redis 中, 即使这会产生一定的延迟。存储文件路径可以节省内存占用,增添灵活性,使项目易于管理,若使用云存储服务,可以降低许多成本。

  2. 列表(List

    redis 列表是简单的字符串列表, 按照插入顺序排序, 用户可以添加一个元素到列表的头部 或 尾部

    redis list 的底层是一个 双端链表, 最多可以包含 2^32 - 1 个元素

  3. 哈希表(hash)

    redis hash 是一个 sting 类型的 fieldvalue 的映射表, hash 特别适合用于存储对象

  4. 集合(Set)

    SetString 类型的无序集合, 集合成员是唯一的, 这意味着集合中不能出现重复的数据, 集合的对象的编码可以是 Intset 或者 hashtable

    Set 底层由 hash 实现, 所以添加, 删除, 查找的时间复杂度都是 O(1)。

  5. 有序集合(ZSet, sorted set)

    zsetset 一样, 也是 string 类型元素的集合, 且不允许重复的元素

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

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

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

  6. 地理空间(GEO)

    GEO 主要用于存储地理位置信息, 并对存储的信息进行操作, 包括 添加地理位置的坐标, 获取地理位置的坐标, 计算两个位置之间的距离, 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。

  7. 基数统计(HyperLogLog)

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

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

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

  8. 位图(bitmap)

    由 0 和 1 状态表现的二进制位的 bit 数组, 多用于只有两种结果的数据中

  9. 位域(bitfield)

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

  10. 流(Stream)

    stream 类似于一个消息队列, redis 本身有一个 redis 发布订阅(pub/sub)来实现消息队列的功能, 但有个缺点就是消息无法持久化, 如果出现网络断开, redis 宕机的情况, 消息就会被丢弃。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值