Redis
文章平均质量分 65
blinkbean
不知名CRUD选手。
展开
-
Redis zset为什么用跳表
zset相关命令时间复杂度命令时间复杂度功能zaddO(log(N))添加zscoreO(1)获取scorezcardO(1)获取member个数zincrbyO(log(N))修改scorezrank、zrevrankO(log(N))获取排名zrange、zrevrangeO(log(N)+k)根据排名范围获取...原创 2020-04-19 22:38:15 · 2453 阅读 · 1 评论 -
Redis——SortedSet排行榜同分
排行榜可以使用SortedSet,但是如果同分的时候会有两种相对难搞的情况:谁排名靠前,按需求展示。同分名次并列。同分不同名SortedSet score是支持浮点数的,只要给每个score加上对应的浮点数,就能实现按先后达到目标值的排序进行展示。如timestamp同分同名次这时一个SortedSet 就不能满足需求了,因为不知道前面有多少组同分的成员。两个SortedS...原创 2020-03-17 18:27:21 · 3221 阅读 · 0 评论 -
Python 实现 BloomFilter
学习笔记,如有不足之处,欢迎指正。类定义import mathimport timeimport redisfrom hashlib import md5class SimpleHash(object): def __init__(self, cap, seed): self.cap = cap self.seed = seed ...原创 2019-11-29 21:47:25 · 634 阅读 · 0 评论 -
Redis——exists有可能超出你的预期
Redis的Exists有可能超出你的预期理论上每个key都应该有过期时间(当然也可以是一万年),通常情况下用exists来判断一个key是否存在都没什么问题(一般过期时间都比较长)。但如果过期时间需要精确到秒或十秒及,那么exists就会出乎你的意料。Redis过期键删除策略Redis key过期的方式有三种:被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删...原创 2019-07-20 18:14:14 · 7892 阅读 · 1 评论 -
Redis——有时候expire比exists更好用
参考文章——简书什么情况下expire比exists更好?前提redis key过期时间必须设置(特殊需求除外),但是如果DB的值有变动会主动更新到redis,所以不会有数据不同步的情况。场景每次都需要判断某个key是否存在,然后才能执行相应的操作。问题最坏情况下,代码在执行exists时key是有效的,后面对key进行操作时,发现在那两行代码执行的中间,key被清掉了。...原创 2019-08-23 21:50:03 · 1099 阅读 · 0 评论 -
Redis——两次redis操作用不用pipeline?
为什么需要 pipeline ?正常情况下,客户端发送一个命令,等待 Redis 应答;Redis 接收到命令,处理后应答。请求发出到响应的时间叫做往返时间,即 RTT(Round Time Trip)。在这种情况下,如果需要执行大量的命令,就需要等待上一条命令应答后再执行。这中间不仅仅多了许多次 RTT,而且还频繁的调用系统 IO,发送网络请求。pipeline 允许客户端可以一次发送多条...原创 2019-08-28 21:17:26 · 478 阅读 · 0 评论