统一Redis键前缀的最佳实践(Golang篇)

Last modified: 01 March 2025

日常开发中遇到了一个特殊的需求,给所有的redis key添加统一的前缀。

因为项目里面使用的客户端是 go-redis ,于是调研了下,发现它允许配置 Hook

参考链接 Go Redis Hook 钩子

于是自己动手实现了下, 关键在于实现ProcessHookProcessPipelineHook这两个方法

下面是addPrefixToArgs方法的实现,篇幅问题,简化一下

实际上,可能有些key并不需要添加统一前缀,所以我采用了一种更灵活的实现方式: 通过添加context钩子,允许调用者根据实际需求,动态控制哪些key跳过该逻辑。

最后, 对于调用者来说,只需要在初始化redis客户端的时候,把hook加上就行,全部下来也只需改动一行代码

完整代码已经上传到我的 Github仓库 ,如果对你有用的话,可以点一个star