ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【无标题】

2021-11-25 13:34:35  阅读:165  来源: 互联网

标签:随机数 队列 无标题 expire del 延时 HyperLogLog


【时间】2021.11.24

【题目】【《Redis深度历险》读书笔记(4)】应用(1-4)分布式锁、延时队列、位图、HyperLogLog

本栏目是《Redis深度历险:核心原理和应用实践》的读书笔记。

目录

一、简介

二、一些重点图

1、HyperLogLog原理图

三、思维导图


一、简介

        本章主要主要介绍了Redis 分布式锁、延时队列、位图、HyperLogLog的应用。

  1. 分布式锁:使用setnx+expire实现悲观锁,更进一步,使用set key true ex 100 nx实现两条指令的原子性。几个问题的解决:1)不加expire时可能会出现死锁问题(意外无法del时);2)使用expire时会出现超时问题,书籍中没有给出根本解决方法,只是建议加锁后的操作不要太复杂从而避免超时,以及set key 时value使用随机数而不是true,后续del时比较是否是该随机数再del以避免超时造成的连锁反应。
  2. 延时队列:1)通过rpush+lpop实现普通消息队列;2)通过blpop阻塞读实现阻塞队列;3)延时队列:使用有序集合实现,将到期时间作为score,相关指令 zadd 、zrangbyscore、zrem。
  3.   位图:主要是为了节约空间,相关指令:bitget/bitset,统计和查找bitcount/bitops
  4. HyperLogLog:可用于不精确地统计UV,原理是通过一系列随机数的中低位连续0个数的最大值来估计集合中随机数的数目,相关指令:pfadd,pfcount

二、一些重点图

1、HyperLogLog原理图

k和 N 的对数之间存在显著的线性相关性:

N=2^k  # 约等于

为了精确,使用多个桶,并对各个桶的k进行调和平均,再估计最后的N。

三、思维导图

 

标签:随机数,队列,无标题,expire,del,延时,HyperLogLog
来源: https://blog.csdn.net/C_chuxin/article/details/121535170

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有