首页 技术文章 数据库 简单聊聊Redis中GETBIT和SETBIT
正文 评论

简单聊聊Redis中GETBIT和SETBIT

Redis是in-memery的数据库,其优势不言而喻。
详细可以阅读一下官网的介绍。https://redis.io

其主要有五种数据类型:strings,lists,sets,hashes。
在学习到strings类型的常见命令的时候,对GETBITSETBIT的意义并不是非常了解,所以就搜索了一下相关文章。看到一篇介绍GETBITSETBIT的应用的文章,感觉非常强大,记录如下:

我们在登陆某些博客网站或者视频网站的时候,网站往往会记录我们是否阅读了某篇文章,或者是观看了某个视频。

如果用传统的mysql数据库实现,如果用户数量多,文章和视频也多的情况下,那么则会给数据库带来很大的压力。

而用Redis的GETBIT和SETBIT则会简单得多。
我们以视频为例,我们用bitmap来记录用户们是否已经观看了某一个视频,一个视频对应一个bitmap。例如

key:   video:1201
value: 000000...0000

key以视频英文名video+冒号+id标记。
value就是一个bitmap。一位(bit)有两种可能,0或者1。0代表未看,1代表已经看过了。
而位置(offset)代表的就是user id。例如第200位就代表user_id为200的用户是否观看过id为1201的视频。

设置

# SETBIT key offset value

SETBIT video:1201 200 1
# 上面的命令就是设置ID为200的用户,已经看过了ID为1201的视频。

查询

# GETBIT key offset
GETBIT video:1201 200
# 上面的命令就是查询ID为200的用户是否观看了ID为1201的视频

当然您也可以一个用户对应一个bitmap,bitmap中的位代表一个视频是否已经被观看。

另外文章中也将到目前非常流行的打卡或者是登陆记录也可以用相似的设计实现。
例如用一个bitmap记录所有用户的登陆情况,bitmap中的一位代表一个用户当天是否有登陆,0代表没登陆,1代表有登陆。
每天生成一个bitmap。

通过统计多天bitmap就可以实现统计活跃用户之类的操作了。

推荐学习:《redis教程》

以上就是简单聊聊Redis中GETBIT和SETBIT的详细内容,更多请关注主题君其它相关文章!

-=||=-收藏赞 (0)
更多主题
单栏极简文艺WordPress博客主题:Diaspora主题
¥ 0 关注:20,029
详情
简约黑白WordPress个人博客主题:Personal主题
¥ 0 关注:19,988
详情
v1.0.0
小程序收录免费WordPress主题:XCX主题
¥ 0 关注:19,602
详情
v1.0.0
一款简约单栏的免费WordPress博客主题:itheme主题
¥ 0 关注:18,111
详情
功能丰富切轻量的WordPress虚拟资源主题:Rizhuti主题
¥ 599 关注:17,998
详情
大气优雅免费WordPress博客主题:HONEY主题
¥ 0 关注:14,851
详情
回复
暂无评论

不要再留垃圾评论了,主题君整理资源不容易,留几句鼓励的话吧。