• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 简单聊聊Redis中GETBIT和SETBIT

简单聊聊Redis中GETBIT和SETBIT

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Redis中GETBIT,Redis中SETBIT等相关知识,希望对您有所帮助

Redis中的GETBIT和SETBIT

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

其主要有五种数据类型:strings,lists,sets,hashes。

在学习到strings类型的常见命令的时候,对GETBIT和SETBIT的意义并不是非常了解,所以就搜索了一下相关文章。看到一篇介绍GETBIT和SETBIT的应用的文章,感觉非常强大,记录如下:

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

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

而用Redis的GETBIT和SETBIT则会简单得多。

我们以视频为例,我们用bitmap来记录用户们是否已经观看了某一个视频,一个视频对应一个bitmap。例如

key:   video:1201value: 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 offsetGETBIT video:1201 200# 上面的命令就是查询ID为200的用户是否观看了ID为1201的视频

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

另外文章中也将到目前非常流行的打卡或者是登陆记录也可以用相似的设计实现。

例如用一个bitmap记录所有用户的登陆情况,bitmap中的一位代表一个用户当天是否有登陆,0代表没登陆,1代表有登陆。

每天生成一个bitmap。

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



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 简单聊聊Redis中GETBIT和SETBIT

相关文章

  • 2022-04-29php构造方法和java构造方法有什么区别
  • 2022-04-29ThinkPHP6中env环境变量的使用
  • 2022-04-29正则表达式中两个反斜杠的匹配规则详解
  • 2022-04-29怎么为WordPress上下篇文章链接添加缩略图
  • 2022-04-29利用滤镜及动作制作暗调金属质感立体字
  • 2022-04-29在javascript中,NaN是什么类型?
  • 2022-04-29CDR绘制立体图标入门教程
  • 2022-04-29PHP怎么获取当前日期是一年的第几周
  • 2022-04-29搜索引擎优化中关键词的分类
  • 2022-04-29详解JS,Jquery获取屏幕的宽度和高度代码

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 使用Vue、Three.js实现全景图
    • 纯CSS3怎么创建瀑布流布局?columns方法浅析
    • 关于thinkphp5中分页paginate()之后的数据中添加键值
    • 解决ThinkPHP5.1版本引入composer vendor扩展包的问题
    • Photoshop制作浮雕立体效果的艺术字
    • 浅谈小程序中页面间传值的2种方法
    • Photoshop绘制玻璃质感水晶按钮教程
    • 关于thinkphp邮箱验证码前后台
    • Centos下Laravel访问页面出现空白怎么办?
    • Photoshop绘制白色开关插座ICON图标

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有