随笔分类 - 用 Golang 实现 Redis

摘要:本文是使用 golang 实现 redis 系列的第九篇,主要介绍如何使用 GeoHash 实现搜索附近的人。 搜索附近的POI是一个非常常见的功能,它的技术难点在于地理位置是二维的(经纬度)而我们常用的索引(无论是B树、红黑树还是跳表)都是一维的。GeoHash 算法的本质就是将二维的经纬度转换为一维的表示。 阅读全文
posted @ 2021-02-23 13:00 -Finley- 阅读(1406) 评论(0) 推荐(5) 编辑
摘要:本文是使用 golang 实现 redis 系列的第七篇, 将介绍如何在分布式缓存中使用 Try-Commit-Catch 方式来解决分布式一致性问题。 阅读全文
posted @ 2020-12-03 13:53 -Finley- 阅读(1752) 评论(0) 推荐(4) 编辑
摘要:本文是使用 golang 实现 redis 系列的第七篇, 将介绍如何将单点的缓存服务器扩展为分布式缓存。我们采用一致性 hash 算法 key 分散到不同的服务器,客户端可以连接到服务集群中任意一个节点。当节点需要访问的数据不在自己本地时,需要通过一致性 hash 算法计算出数据所在的节点并将指令转发给它。 阅读全文
posted @ 2020-11-25 20:37 -Finley- 阅读(1691) 评论(0) 推荐(4) 编辑
摘要:本文是使用 golang 实现 redis 系列的第六篇, 将介绍如何实现一个 Pipeline 模式的 Redis 客户端 阅读全文
posted @ 2020-11-24 08:37 -Finley- 阅读(1171) 评论(4) 推荐(3) 编辑
摘要:跳表和 SortedSet 实现 阅读全文
posted @ 2020-05-09 07:58 -Finley- 阅读(1549) 评论(1) 推荐(6) 编辑
摘要:AOF 持久化与AOF重写实现 阅读全文
posted @ 2020-04-08 22:53 -Finley- 阅读(1974) 评论(4) 推荐(5) 编辑
摘要:Golang 实现 Redis 之三: 内存KV数据库实现 阅读全文
posted @ 2020-03-29 06:46 -Finley- 阅读(3192) 评论(1) 推荐(2) 编辑
摘要:Golang 实现 Redis 之二: Redis 通信协议与解析器的实现 阅读全文
posted @ 2019-11-24 17:11 -Finley- 阅读(3459) 评论(0) 推荐(5) 编辑
摘要:Golang 开发 Tcp 服务器及拆包粘包、优雅关闭的解决方案 阅读全文
posted @ 2019-06-22 22:20 -Finley- 阅读(8908) 评论(10) 推荐(9) 编辑