Redis(REmote DIctionary Server)是一个开源的使用 ANSI C 语言编写, 遵守 BSD 协议, 支持网络, 可基于内存亦可持久化的日志型, Key-Value 数据库, 并提供多种语言的 API
Redis 通常被称为数据结构服务器, 因为值 (value) 可以使字符串 (String), 哈希(Map), 列表(list), 集合(Set), 和有序集合(sorted sets) 等类型
Redis 哈希(Hash)
Redis Hash 是一个 string 类型的 field 和 value 的映射表, hash 特别适合用于存储对象
Redis 中每个 hash 可以存储 232-1 (40 多亿)个键值对
Redis 列表(List)
Redis 列表是简单的字符串列表, 按照插入顺序排序, 可以添加一个元素列表的头部 (左边) 或者尾部(右边)
Redis 中一个列表最多可以存储 232-1 个元素
Redis 集合(Set)
Redis 的 Set 是 String 类型的无序集合. 集合成员是唯一的, 这就意味着集合中不能出现重复的数据
Redis 中集合是通过哈希表实现的, 所以添加, 删除, 查找的复杂度都是 O(1)
Redis 中的一个集合中最多存储 232-1 个成员
Redis 有序集合(sorted set)
Redis 有序集合和集合一样也是 string 类型元素的集合, 且不允许重复的成员
不同的是每个元素都会关联一个 double 类型的分数. redis 正是通过分数来为集合中的成员进行从小到大的排序
有序集合的成员是唯一的, 但分数 (score) 却可以重复
集合是通过哈希表实现的, 所以添加, 删除, 查找的复杂度都是 O(1). 集合中最大的成员数为 232-1
Redis HyperLogLog
Redis HyperLogLog 是用来做基数统计 (计算数据集中不重复元素的个数) 的算法, HyperLogLog 的优点是, 在输入元素的数量或者体积非常非常大时, 计算基数所需的空间总是固定的, 并且是很小的
在 Redis 里面, 每个 HyperLogLog 键只需要花费 12 KB 内存, 就可以计算接近 264 个不同元素的基 数. 这和计算基数时, 元素越多耗费内存就越多的集合形成鲜明对比
因为 HyperLogLog 只会根据输入元素来计算基数, 而不会储存输入元素本身, 所以 HyperLogLog 不能像集合那样, 返回输入的各个元素
来源: http://www.bubuko.com/infodetail-2662260.html