用 redis 做缓存,总共有 16db,在实际应用为了方便管理把不同的业务放在了不同的 db 中(虽然 16 个没全部用到,但基本上也用了差不多一半左右的样子)
最开始操作 redis 的代码是这样的
比如我要 SET 一个 string 到 db=1 的库中,命令顺序就是:SELECT > SET
这样做了之后发现一个问题:并发稍微高了一点就会导致 dbindex 错乱,就是我明明想 SET 到 db=1 的库里,可能跑了到 db=2 的或者其他的库里
于是将所有的 redis 操作改为了用事物来代替,即:MULTI > SELECT > SET > EXEC
这样做了之后就没有问题了
那么问题来了:
最后:开发语言用的是 go,client 使用的是redigo
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.