持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情
Redis中string的应用
相信大家对Redis已经非常熟悉了,但是你们有深入地去了解过redis中是string数据类型的应用吗? 今天本文就带着大家一起去学习一下,关于Redis中string数据类型的具体内容,
首先,我们先通过帮助文档来总体看看string中究竟包含了哪些内容:
help @string
我们可以通过以上命令来查看是string相关的所有操作(帮助文档是一份非常好的学习资料):
下面我们分几种情况进行讨论: 如果保存的是字符串,则可以对字符串进行一些基本操作,具体操作如下图所示:
对字符串进行增加可以使用命令APPEND k1 world
如果保存的是byte类型的话还是可以对数据进行计算:
上面我们保存的就是一个数字2,下面我们可以对它进行计算,具体细节如下:
我们使用Inc k2 的命令,使得 k2 的增加了 1,如果想减掉 1 的话,可以执行以下操作
dec k2:
重点知识点:位图
string类型中最为重要的是里面可以保存一个bitmap,位图的作用不知道各位有没有听说过呢?
或者说,可以先看看下面这个例子:
如果让你记录创库中的物品有哪些,你会用什么数据结构去记录呢?
相信很多小伙伴一上来就会说这还不简单吗?这里有物品,有数量,我直接一个map就可以解决了;确实这话没毛病,但是如果仓库中的物品有很多呢?
用map来存储,你确定你的存储消耗得起吗? 所以如果考虑到存储优化方面的问题的话,我们就不应该采用map,而采用bitmap就可以解决了,首先将每一种物品对应一个二进制位,如果有该物品,则将该二进制位置 1 ,没有该物品,则置零;这样子,用一个二进制位就可以完成一种物品的统计了,显然是大大缩减了记录存储的空间。
其实这也是著名的布隆过滤器的基本原理。