以前使用直接在文件 .DIR 中保留次数的方法, 效率比较低,
并且无法控制时间间隔, 在 GoonBBS 中使用了新的方法.
每一篇文章对应一个整数, 对于板面的文章来说,
每个板面建立一块共享内存 hash, 用于保存阅读次数,
另建立一块比较大的共享内存 hash, 用于保存精华区的阅读次数,
这样, 所有的文章都有阅读次数了.
内存估算:
每篇文章占 16 字节,
假设板面有 5 万篇文章, 那么占内存 819224 byte,
假设精华区有 1000 万文章, 那么占内存 160M
另外建立一块 500 万记录(占内存 80M) 的共享内存 hash,
用于控制所有文章的阅读次读的时间间隔,
也即, 某个用户在一定时间内点击某篇文章次数才增加.
如果这个 hash 被写满则清零.
只需定时(例如每天)刷新内存到文件即可.
欢迎大家讨论 :)
--
FROM 210.21.48.*