- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
应用3:节⾐缩⻝——位图
在我们平时开发过程中,会有⼀些bool型数据需要存取,⽐如用户
⼀年的签到记录,签了是1,没签是0,要记录365天。如果使用普
通的key/value,每个用户要记录365个,当用户上亿的时候,需
要的空间是惊人的。
为了解决这个问题,Redis了位图数据结构,这样每天的签到记
录只占据⼀个位,365天就是365个位,46个字节(⼀个稍⻓⼀点的
字符串)就可以完全容纳下,这就大大节约了空间。
位图不是特殊的数据结构,它的内容其实就是普通的字符串,也就是
byte数组。我们可以使用普通的get/set直接获取和设置整个位图
的内容,也可以使用位图操作getbit/setbit等将byte数组看成
「位数组」来处理。
当我们要统计月活的时候,因为需要去重,需要使用set来记录所有
活跃用户的id,这⾮常浪费内存。这时就可以考虑使用位图来标记
用户的活跃状态。每个用户会都在这个位图的⼀个确定位置上,0表
示不活跃,1表示活跃。然后到月底遍历⼀次位图就可以得到月度活
跃用户数。不过这个方法也是有条件的,那就是userid是整数连续
的,并且活跃占⽐较高,否则可能得不偿失。
本节略显枯燥,如果读者看的有点蒙,这是正常现象,读者可以跳过
阅读下⼀节。以⽼钱的经验,在⾯试中有Redis位图使用经验的同
学很少,如果你对Redis的位图有所了解,它将会是你的⾯试加分
项。
应用3:节衣线食——位图
我们平时的开发过程中,有一些bool数据需要记录,比如1年的用户
记录,365天1条记录,0条记录。
为了解决这个问题,Redis了一种数据结构,使得每天的日期只能占
用一个位置,365天就是365个位置,可以完全容纳46个字节(一组字
符),因此可以容纳很大的空间。
位图并不是一种特殊的数据结构,它的内容实际上是普通的字符串,
即字节数组。
当我们想要计算活跃用户数时,需要使用集合来记录活跃用户ID,
这样非常浪费内存。这时我们可以考虑使用用户ID来标记用户的活
跃状态。
本节略月枯燥,如果读者看到一点点,这是正常现象,读者可以跳
过阅读下一节。面试中对Redis的经验很少。
基本使用
Redis的位数组是自动扩展,如果设置了某个偏移位置超出了现有的
内容范围,就会自动将位数组进行零扩充。
接下来我们使用位操作将字符串设置为hello(不是直接使用set指
令),首先我们需要得到hello的ASCII码,用Python命令行可以
很方便地得到每个字符的ASCII码的二进制值。
bin(ord(h))
0b1101000#-低位
bin(ord(e))
0b1100101
bin(ord(l))
0b1101100
bin(ord(l))
0b1101100
bin(ord(o))
0b1101111
基本使用
Redis的本地数组是自动扩展的,如果你设置的某个偏移位置超出了
已有的内容范围,就会自动扩展本地数组。
接下来,我们使用ASCII码将字符串设置为hello。
bin(word(h))0b1101000#
‑低位bin(word(e))
0b1100101bin(word(l))
0b1101100bin(word(l))
0b1101100bin(word(o))
0b1101111
您可能关注的文档
- 单细胞及亚细胞水平代谢物检测技术研究.pdf
- 教师考试模拟试题配套一:单选多选判断题型.pdf
- NEOZED保险丝插件技术参数及订购信息.pdf
- 学院学生会纳新迎新工作职责与活动安排.pdf
- 存档人力资源员工宿舍管理.pdf
- 三角形面积教学建议——制作标志牌场景应用.pdf
- 某行政中心物流综合楼隐蔽验收记录.pdf
- 人教版物理必修二第五章曲线运动第五节向心加速度同步练习题及答案.pdf
- 阅读原著优于观影,太阳赋予地球生命.pdf
- 战败报告工作流程作业说明.pdf
- 2025北京航空工业集团综合所高层次人才及博士招聘20人笔试参考题库附答案.docx
- 2025安徽亳州市利辛县巡察信息中心遴选5人备考题库附答案.docx
- 2025宁波鄞州区东柳街道编外招聘1人备考题库附答案.docx
- 2025云南楚雄市机关事业单位选调63人备考题库附答案.docx
- 2025北京中国社会科学调查中心招聘劳动合同制人员1人备考题库附答案.docx
- 2025宁波市市场监督管理局局属事业单位宁波市标准化研究院招聘高层次人才1人备考题库附答案.docx
- 2025河南郑州铁路职业技术学院招聘合同制工作人员48人笔试历年题库附答案解析.docx
- 2025云南玉溪市红塔区文化和旅游局招聘办公辅助人员1人备考题库附答案.docx
- 2025山东日照市岚山区卫生健康系统事业单位招聘20人备考题库附答案.docx
- 2025四川九州电子科技股份有限公司招聘车载电子事业部-PQE岗笔试参考题库附答案.docx
原创力文档


文档评论(0)