redis 数据类型和概念

参考链接:https://redis.io/topics/data-types-intro

文章摘要:

概述
redis 能储存 7 种数据结构,分别是:

strings 二进制安全的字符串
lists 有序字符串列表
sets 无重复无序字符串集合
sorted sets 无重复有序字符串集合
hashes 类似键值均为字符串的map
bitmaps 位数组,可由字符串转化而来
HyperLogLogs 概率数据结构,用于估计集合基数

redis 的键要简洁易懂,如“ comment:1234:reply-to ”

STRINGS
INCR INCRBY DECR DECRBY,这些命令是原子性的。这意味着可在并发条件下运行。
数据的生存时间可以设置。

LISTS
字符串列表是链表,特点是插入快、查找慢。
列表的两个常用用途:存储社交网络更新和进程间通信。
列表适合实现队列。命令 BRPOP BLPOP 用于解决阻塞问题。

HASHES
类似于 map。

SETS
适用于表示模型间的关系。

SORTED SETS
排序规则是先比较“分数”,再比较元素的值。
从这种集合中取元素时,允许按照字典顺序设置范围。

BITMAPS
bitmaps 并不是实际数据类型,而是对字符串进行位层面的修改。
位操作分为两类,第一是对单个位修改,第二是对一定范围的位进行统计。
bitmaps 优点之一是储存信息时可极度节省空间。
SETBIT 命令用于设置单个位,当地址超出当前字符串长度时,自动延长字符串。
GETBIT 命令用于获得指定位的值,当地址超出当前字符串长度时,返回0。
有 3 种命令用于操作bits。BITOP 用于不同字符串之间操作。BITCOUNT 统计 bits 中 1 的数量。BITPOS 寻找 0 或 1 最早出现的位置。
bitmaps 的用处有 2 个。第一是各种实时分析,第二是储存与 ID 相关的低容量高性能数据。
例如你想知道网站用户最大连续访问天数,给每个用户分配一个bitmap。用户访问时采用 SETBIT 命令,键是当前 unix 时间,值是 1。统计最长bit = 1的情况,除以 24 * 3600 就可以得到天数。这样,一个小小的字符串就记录了用户每日访问信息。
bitmaps 很容易分成多个键。一种方式是分成 M 个,键名是 bit-number/M 和序列号,用bit-number mod M 在集合内部进行查找。

HYPERLOGLOGS
这个数据结构用来计算集合元素的数量。HLL 可以节省大量内存。该数据结构的一个应用是,计数用户的特定查询动作。

猜你喜欢

转载自www.cnblogs.com/mexding/p/9572069.html
今日推荐