goyoubbs 代码释疑
getold 目录是做啥用的?数据迁移吗?
另外对于youdb 的使用,是不是有点?不太正确啊~
有大量的类似如下代码:
db.Hset("article", aidB, jb)
db.Zset("article_timeline", aidB, aobj.EditTime)
db.Zset("category_article_timeline:"+strconv.FormatUint(aobj.Cid, 10), aidB, aobj.EditTime)
db.Hset("user_article_timeline:"+strconv.FormatUint(aobj.Uid, 10), youdb.I2b(aobj.Id), []byte(""))
db.Zincr("category_article_num", youdb.I2b(aobj.Cid), 1)
一则忽略了错误,不太符合 golang 最佳实践,按说站长也是用 goland 写代码的啊,看着泛黄的warn提示就木有点强迫症吗?~^_^
二则这里的每个 db 操作,内部都是单一事务,实际上整体却是分开的,不仅性能弱点,好像也不太好?
个人拙见。。。如果有不当的地方,望见谅
0
See Also
- goYouBBS 功能增添 Task 记录
- 我的服务器已经安装了lnmp, 想安装一个虚拟主机进入goyoubbs论坛。
- 浏览器中的代码编辑器:CodeMirror
- js + css 前端代码高亮
- GoKart:用于保护 Go 代码的静态分析工具
Nearby
- 上一篇 › Go 1.14 终于发布了
- 下一篇 › sdb:基于goleveldb的简单数据库
db.x
代码是从 SQL 到 NoSQL 转移的一个结果,当你尝试把一个 MySQL 的 blog 程序,用 Redis 替换时,你也会面临一些问题,并可能也作类似的操作。原来索引、排序都是由 MySQL 来完成,现在得自己构造数据结构,供搜索、排序...error
的语句“划黄线”,后来懒得从头修复,在一些出错可能性很小的地方没对 err 判断b.Put(k, v)
+b.Get(k)
,使程序代码更复杂,youdb 也就需要独立出来,这也是上面的 第2
条决定,要在一方面取得便利,在另一方面就添加了麻烦goyoubbs 从 MySQL 转为嵌入式的 NoSQL 的初衷是摆脱独立的数据库服务,即开即用的绿色小程序。
参考
刚通篇读了一遍~~~的确,迁移时会有各种历史遗留问题~
站长似乎就是用 boltdb 实现了 redis 的 Hash 和 sorted set 两种数据结构~
想咨询一下站长自己的实际使用,现在日均大约多少PV,占多少内存和CPU,好使吗?~ ^_^
带分词的 248MB,没带分词 10MB 左右,单核 CPU 大多(读)在 0.3%,偶尔写 0.7%
这里 https://www.youbbs.org/t/3210 提到用
for
无暂停循环写,CPU 占用 7% 左右刚刚还特意重启了一下??????哈哈哈哈哈哈哈哈哈
这个内存占用非常非常低了,加一个nginx 就是全部的网站了~看得出站长对内存很在意啊,看到代码里各种节省内存的奇技淫巧~我个人不太在意内存,更多在意可读性,有点想重构的冲动~ ^_^
@冒烟的蘑菇 今晚更新了几次程序,自然重启。当你面临单机资源紧缺时也会考虑程序各方面的占用,单机资源有上限,老板是期望无上限。用自己喜欢的技术重写一个好。
审核也好麻烦,看来要做一个信任用户权限。
跑了一天