摘要:
Redis Geohash Redis在3.2版本后增加了地理位置GEO模块, 意味着可以使用Redis来实现摩拜但这[附近的Mobike]、美团和饿了么[附近的餐馆]这样的功能了。 用数据库来算附件的人 地图元素的位置数据使用二维的经纬度表示, 经度范围(-180, 180], 纬度范围( 阅读全文
摘要:
Unbuntu 安装redis-cell 插件模块 redis-cell 限流模块 Redis4.0提供了限流Redis模块,它叫redis-cell。该某块也使用了漏斗算法, 并提供了原子的限流指令。 安装步骤 1、查看redis的系统版本 vagrant@homestead:~$ redis-s 阅读全文
摘要:
漏斗限流 基本思路 漏斗限流是最常用的限流方法之一, 顾名思义, 这个算法的灵感来源于漏斗的结构。 漏斗的容量是优先的, 如果将漏斗嘴堵住, 然后一直往里面灌水, 它就会变满, 直至再也装不进去。如果将漏斗嘴放开, 水就会往下流, 水流走一部分后, 就又可以继续往里面灌水。 如果漏斗的流水速 阅读全文
摘要:
简单限流 限流算法在分布式领域是一个经常被提起的话题,当系统的处理能力有限时, 如何阻止计划外的请求继续对系统施压, 这是一个需要重视的问题。 除了控制流量, 限流还有一个应用目的是用于控制用户行为, 避免垃圾请求。比如在用户的发帖、回复、点赞等行为都要严格受控,一般要严格限定某行为在规定时 阅读全文
摘要:
Redis阅读笔记--压缩列表 压缩列表(ziplist)是列表键和哈希键的底层实现之一。当一个列表指包含少量的列表项, 并且每个列表项要么就是小整数值, 要么就是长度比较短的字符串, 那么Redis就会使用压缩列表来做列表键的底层实现。 例如,执行以下命令将会创建一个压缩列表实现的列表键。 阅读全文
摘要:
Redis阅读笔记-整数集合 整数集合(intset)是集合键的底层实现之一, 当一个集合只包含了整数值元素, 并且这个集合的元素数量不多时, Redis就会使用整数集合作为集合键的底层实现。 举个例子,如果创建一个只包含5个元素的集合键, 并且集合中的所有元素都是整数值, 那么这个集合键的 阅读全文
摘要:
Unbuntu 安装Redis 布隆过滤器插件 查看你的Redis系统版本 vagrant@homestead:~$ redis-server -v Redis server v=5.0.8 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=129 阅读全文
摘要:
Redis 布隆过滤器 应用场景 我们知道可以用HyperLogLog数据结构用来进行估数, 它非常有价值,可以解决很多精度不高的统计需求。 但是如果我们想知道某一个值是不是已经在HyperLogLog结构里面了, HyperLogLog就不能为力了, 它只提供了pfadd和pfcount方 阅读全文
摘要:
HyperLogLog 应用场景 现开发维护一个大型的网站,需要统计每个网页每天的UV和PV数据,现在需要你来开发这个统计模块,你会如何实现? 如果统计PV非常好办,给每个网页设置一个独立的Redis计数器,这个计数器的key加上当天的日期,这样请求一次,incrby一次,这样最终可以统计出 阅读全文
摘要:
位图(bitMap) 应用场景 在平时开发中, 可能有一些bool型数据需要存取,如用户一年的签到记录,签了是1, 没签是0, 要记录365天。如果使用普通的key/value, 每个用户要记录365个, 当用户上亿时候, 需要的存储空间是惊人的。 为了解决这个问题, Redis提供了位图数据结构, 阅读全文