-
字符串(
String)string是redis最基本的数据类型, 一个key对应一个valuestring类型是二进制安全的, 意味着redis的string可以包含任何数据, 比如 图片 或者 序列化的对象string类型的值最大占用空间是512M, 但一般情况下不建议直接将图片存储到redis中, 即使这会产生一定的延迟。存储文件路径可以节省内存占用,增添灵活性,使项目易于管理,若使用云存储服务,可以降低许多成本。 -
列表(
List)redis列表是简单的字符串列表, 按照插入顺序排序, 用户可以添加一个元素到列表的头部 或 尾部redis list的底层是一个双端链表, 最多可以包含2^32 - 1个元素 -
哈希表(
hash)redis hash是一个sting类型的field和value的映射表,hash特别适合用于存储对象 -
集合(
Set)Set是String类型的无序集合, 集合成员是唯一的, 这意味着集合中不能出现重复的数据, 集合的对象的编码可以是Intset或者hashtableSet底层由hash实现, 所以添加, 删除, 查找的时间复杂度都是 O(1)。 -
有序集合(
ZSet,sorted set)zset和set一样, 也是string类型元素的集合, 且不允许重复的元素不同点在于: 每个元素都会关联一个
double类型的分数,redis通过分数来为集合中的成员进行从小到大的排序。zset成员是唯一的, 但score(分数)可以重复zset集合是通过哈希表实现的, 所以添加, 删除, 查找的时间复杂度都是 O(1)。集合中最大的成员数为 2^32-1 -
地理空间(
GEO)GEO主要用于存储地理位置信息, 并对存储的信息进行操作, 包括 添加地理位置的坐标, 获取地理位置的坐标, 计算两个位置之间的距离, 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。 -
基数统计(
HyperLogLog)HyperLogLog是用来做基数统计的算法,HyperLogLog的优点是: 在输入元素的数量或体积非常大时, 计算基数所需的空间总是固定且很小的.每个
HyperLogLog键只需要花费12kb内存, 就可以计算接近2^64个不同元素的基数, 这和计算基数时, 元素越多, 耗费内存越多的集合形成鲜明对比但是, 因为
HyperLogLog只会根据元素来计算基数, 而不会存储输入元素本身, 所以HyperLogLog不能像集合那样, 返回输入的各个元素 -
位图(
bitmap)由 0 和 1 状态表现的二进制位的 bit 数组, 多用于只有两种结果的数据中
-
位域(
bitfield)通过
bitfield命令可以一次性操作多个比特位域(指连续的多个比特位), 它会执行一系列操作并返回一个响应数组, 这个数组中的元素对应参数列表中的相应操作的执行结果。 -
流(
Stream)stream类似于一个消息队列,redis本身有一个redis发布订阅(pub/sub)来实现消息队列的功能, 但有个缺点就是消息无法持久化, 如果出现网络断开,redis宕机的情况, 消息就会被丢弃。但
stream提供了消息的持久化和主备复制功能, 可以让任何客户端访问任何时刻的数据, 并且能记住每一个客户端的访问位置, 还能保证消息不丢失

被折叠的 条评论
为什么被折叠?



