论如何用 redis 打造一个优雅的计数系统

2015-09-09 11:07:27 +08:00
 snailsir

如题,想听听大家都怎么搞的,有 demo 更好, php 最好 :)

哦,当然会有 mysql

8140 次点击
所在节点    Redis
36 条回复
broadliyn
2015-09-09 11:09:16 +08:00
当然是 K-V 还能怎么搞?
redis 的 incr 和 decr 都是原子操作,
wupher
2015-09-09 11:11:23 +08:00
折腾用 MongoDB 打造一个优异的计数系统。
snailsir
2015-09-09 11:11:44 +08:00
@broadliyn 然后怎么往 mysql 里搞呢?
sun2920989
2015-09-09 11:12:20 +08:00
incr
snailsir
2015-09-09 11:15:08 +08:00
@sun2920989 我知道用 incr ,但是我想说的 php ---> redis --> mysql 一整套啊、哥
sun2920989
2015-09-09 11:28:56 +08:00
@snailsir redis 有持久化 为啥还要存进 mysql 或者说既然有 mysql 为啥用 redis 做计数
songco
2015-09-09 11:35:05 +08:00
计数系统不需要非常精确, 可以直接写 redis, 然后定期从 redis 同步到数据库, 比如每小时一次.
kslr
2015-09-09 11:35:21 +08:00
Redis 关于计数器有文档的,你可以到 Incr 那一栏看下
snailsir
2015-09-09 11:37:33 +08:00
@sun2920989 啊,这个不是太懂,所以问问大家是怎么弄的啊 [挠头]

现在想的是用 redis 分担 mysql 的压力(单纯计数这块),其余的还是要存在 mysql 里
shiny
2015-09-09 11:38:00 +08:00
楼主是知乎上多了吧,这还能优雅啊?
snailsir
2015-09-09 11:39:58 +08:00
@songco 嗯,这个定期从 redis 同步到数据库,怎么搞呢? 定时脚本吗?
songco
2015-09-09 11:43:28 +08:00
@snailsir 这是很简单的操作吧, 随便什么语言都很容易实现... redis 各种 client 都有: http://redis.io/clients
iyangyuan
2015-09-09 11:45:11 +08:00
redis 本身就有持久化,而且可以高速缓存,为啥非要往 mysql 里同步?你要再不放心可以主备,甚至可以集群。想同步肯定得自己写代码,估计 redis 没有实现这种需求
broadliyn
2015-09-09 12:12:14 +08:00
@snailsir 后台写个定时任务去读取 redis 中计数相关的 K-V 结构,然后保存到 mysql 中
broadliyn
2015-09-09 12:12:58 +08:00
redis 本身就可以做数据库,好多人都把 redis 当成只能做 cache 了。
tms
2015-09-09 12:16:55 +08:00
975 visits today | 730301 visits total with 585772 hit & 144416 miss | This is the 30 times you came here
博客的统计,用 redis 做的,访问统计和缓存命中统计。日期存两层 key , ip 转 10 进制做 key 或者 hkey 。再存一个总数。基本只用到了 incr 而已。
a398058068
2015-09-09 12:18:25 +08:00
redis 的 SortedSet
est
2015-09-09 12:18:39 +08:00
没人用 influxdb ?
a398058068
2015-09-09 12:19:23 +08:00
an0nymous.coding.io/blogcontent?id=49 这里有一篇关于 redis 的文章
snailsir
2015-09-09 13:32:22 +08:00
@broadliyn 哦,也就是这样的了?

php ----> redis ----cron---> mysql

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/219313

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX