关于分布式缓存,有点疑问,不吝赐教

2021-01-28 23:05:56 +08:00
 orangeChu
如果网站有大数据需要缓存(最大键值可能有 10M 左右,我觉得这么大的数据都缓存,太离谱了,但是实际又需要),有什么好的分布式缓存解决方案吗?
尝试了一下 memcached,键值太大的时候,读写太慢了。没有自带的本地缓存快。
小于 1m 的读写速度倒是跟本地缓存速度几乎一样。
ps:c#开发
4513 次点击
所在节点    程序员
51 条回复
ZiLong
2021-01-30 14:07:14 +08:00
可以构造多级缓存,一级用本地,把最热的数据放里面(可以设定个 1m,LRU 更新),二级放 redis/memcached 都行,一般一开始不要用分布式,10M 的缓存都不算大.但是不建议放一个 key 里面,大 key 和热 key 是性能杀手,按某个规则(比如不同省份,不同城市)作为 key
ferock
2021-01-30 18:12:15 +08:00
@orangeChu #38

你是前端使用还是后端用?地区信息一般后端不需要的吧
mybyons
2021-01-30 21:07:59 +08:00
感觉你要重新设计 key
”业务逻辑调整较多“ 不影响你重新设计 key 对外的接口协商好 具体内部怎么实现 外部看不到
orangeChu
2021-02-01 08:49:17 +08:00
@ferock 感谢回复。数据比较多都是前端用,后端一般用到用户信息。
orangeChu
2021-02-01 08:49:38 +08:00
@mybyons 是的。有这个打算。要重新整理一下。
orangeChu
2021-02-01 08:50:46 +08:00
@yanyimin 感谢回复。目前打算用这个方案了。
pavelpiero
2021-02-01 09:21:55 +08:00
@yanyimin 做过类似的骚操作,不过用的是 redis 的订阅发布 一样的道理
ferock
2021-02-01 09:35:05 +08:00
@orangeChu #44

那你生成一个 json 文件走 cdna 给前端自己解析不就好了
boowx
2021-02-01 09:52:01 +08:00
@orangeChu 可以考虑用 json 文件,修改数据后更新 json 文件,api 给前端传文件 key 。可以用 websocket 通知前端缓存文件。
eason1874
2021-02-01 10:36:18 +08:00
才发现居然不是多机同步的,网络再快也有消耗啊,这么大的数据走实时网络,流量大点,内网都能给你堵了
orangeChu
2021-02-01 13:45:31 +08:00
@eason1874 哈哈哈,是的,现在高并发时,单机的整个系统就会缓慢。

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

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

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

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

© 2021 V2EX