21 条回复  ·  2433 次点击
000sitereg 初学 2025-3-15 14:51:27
4G 不小了。数据库也放在上面也够用。 30W 也不多。 非要优化 还是用 go 或者 C++重写下,反正业务很简单。 省下来的内存丢给 PG ,别用 mysql 了
esee 小成 2025-3-15 14:56:26
4G 不算小了。,
goodryb 初学 2025-3-15 15:02:05
不如 redis 直接开启持久化省事,数据库都省了
wowbaby 初学 2025-3-15 15:02:13
少折腾的话 mysql + redis ,在程序中做缓存依赖,第一次读走 mysql 然后缓存到 redis 并打上缓存标签,在没有写入数据时都是走 redis ,如果更新了数据,把缓存标签做失效处理,再读的时候又会缓存新的数据。
oneisall8955 小成 2025-3-15 15:14:30
cdn
LLaMA2 小成 2025-3-15 15:39:28
``` http { # 定义 channel 和 date 的组合映射 map "$arg_channel:$arg_date" $file_path { default /path/to/default.json; # 默认文件 "CCTV1:2025-03-15" /path/to/epg/CCTV1/2025-03-15.json; "CCTV2:2025-03-15" /path/to/epg/CCTV2/2025-03-15.json; "CCTV3:2025-03-15" /path/to/epg/CCTV3/2025-03-15.json; # 添加更多映射规则 } server { listen 80; server_name example.com; location /api/v1/epg { # 根据映射的文件路径返回静态文件 try_files $file_path =404; } } } ``` 数据库,redis 都没了,全特么静态文件 自己写个工具生成 json 和 更新 nginx conf 并重启 nginx 就可以了。这样的 4G 内存服务器还能再降本增效! 无聊一说,不必当真
LLaMA2 小成 2025-3-15 15:43:41
https://gist.github.com/iLazarus/959ef0df1ca14a242dfeec3663529501
LLaMA2 小成 2025-3-15 15:45:22
server { listen 80; server_name example.com; location /api/v1/epg { # 检查 channel 和 date 参数是否存在 if ($arg_channel = "") { return 400 "Missing channel parameter"; } if ($arg_date = "") { return 400 "Missing date parameter"; } # 动态生成文件路径 rewrite ^/api/v1/epg$ /path/to/epg/$arg_channel/$arg_date.json break; # 返回静态文件 try_files $uri =404; } }
tomczhen 初学 2025-3-15 15:50:01
搞这么多组件不如搞成静态化。弄一堆技术不如直接加钱升级服务器。
seth19960929 初学 2025-3-15 16:05:59
1. PostgreSQL 肯定更适合小内存, 毋容置疑, 如果对 MySQL 没有依赖, 直接换 2. 连接数这个没有答案, 监控+压测得到一个合理的值, 自己去看 SQL 缓存命中率(数据库层面) 优化你的 SQL 3. 现在用 Memcached 的已经很少了, 想要内存缓存, 直接在代码层面加二级内存缓存 4. 如果更新不大, 我的建议你直接推送到 CDN, 或者把接口缓存成静态文件直接暴露出去访问
返回顶部