關於 memcached、Redis等緩存服務器的使用


現在做了一個 c++ 項目(類似於網游服務端吧),需要在程序啟動時把數據庫中所有的數據全部加載到內存中,以提高效率。有以下三個問題請前輩解惑:
1、把數據庫中所有數據(后期應該會很大很大吧,十幾張表,就"當"每張表平均百萬條記錄吧,比如說用戶表是很有可能的哦)全部加載到內存中,是否可行?(我知道一般情況下,是只加載最常用的,或者是第一次用時再加載。但是現在這個項目希望可以在啟動服務時,就把數據庫中所有數據全部加載了,就是說完全脫離數據庫。)
2、是加載到 memcached 、 Redis 好,還是直接加載到程序中的全局變量中?請前輩一定指點下這個,相當迷茫。另外我知道 memcached 可能不適合持久化,但Redis應該挺適合的。
3、如果上述方案不可行,那應該怎么架設網游服務端(數據操作部分)才相對更高效呢?
請前輩們多指點啊!

2 个解决方案

#1


各種方式都測試一下

#2


redis做緩存支持持久化,容量可以說無限。

memcached注重的是緩存,你要是覺得偶爾查數據庫是可以容忍的,也可以采取memcached緩存層。

如果內存能完全容下所有數據, 那么直接mysql內存表即可, 一個表容不下就按字段拆表到多台服務器上。也是一個比較務實的方案。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com