摘要:
RESP 是 Redis 序列化协议的简写。它是⼀种直观的⽂本协议,优势在于实现异常简单,解析性能极好。 Redis 协议将传输的结构数据分为 5 种最⼩单元类型,单元结束时统⼀加上回⻋换⾏符号\r\n。 间隔符号,在Linux下是\r\n,在Windows下是\n 1. 单⾏字符串 以 + 符号开 阅读全文
摘要:
为什么Redis是单线程的 1.官方答案 因为Redis是基于内存的操作,CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存的大小或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。 IO多路复用技术 redis 采用网络IO多路复用技术来保证在多 阅读全文
摘要:
在平时线上 Redis 维护⼯作中,有时候需要从 Redis 实例成千上万的 key 中找出特定前缀的 key 列表来⼿动处理数据,可能是修改它的值,也可能是删除 key。这⾥就有⼀个问题,如何从海量的 key中找出满⾜特定前缀的 key 列表来?Redis 提供了⼀个简单暴⼒的指令 keys ⽤来 阅读全文
摘要:
当两个元素的距离不是很远时,可以直接使⽤勾股定理就能算得元素之间的距离。我们平时使⽤的「附近的⼈」的功能,元素距离都不是很⼤,勾股定理算距离⾜矣。不过需要注意的是,经纬度坐标的密度不⼀样 (地球是⼀个椭圆),勾股定律计算平⽅差时之后再求和时,需要按⼀定的系数⽐加权求和,如果不求精确的话,也可以不必加 阅读全文
摘要:
讲个使⽤场景,⽐如我们在使⽤新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。问题来了,新闻客户端推荐系统如何实现推送去重的?你会想到服务器记录了⽤户看过的所有历史记录,当推荐系统推荐新闻时会从每个⽤户的历史记录⾥进⾏筛选,过滤掉那些已经存在的记录。问题是 阅读全文