如何解決OOM command not allowed when used memory >
2016-03-22 17:47:22
28370
1.nginx+uwsgii建立的站點(diǎn)經(jīng)常出現(xiàn)502 bad gateway錯(cuò)誤信息
2.查看uwsgi.log日志,得到如下信息
3.解決方法修改maxmemory的值,找到redis.conf配置文件找到maxmemory修改值
4.redis的相關(guān)配置參考信息直接可以通過redis.conf文件查看,在這個(gè)文件中關(guān)于redis的常規(guī)配置已經(jīng)解釋得比較清楚了。這里主要講解一下maxmemory相關(guān)的說明。
如果設(shè)定了maxmemory,使用redis的時(shí)候,redis的內(nèi)存使用量不能超過設(shè)定的值,一旦redis的內(nèi)存使用量達(dá)到了最大值,redis將會(huì)嘗試按照選擇的eviction policy(回收策略)移除相應(yīng)的keys.
如果redis不能根據(jù)回收策略移除keys,或者回收策略設(shè)置成noeviction,那么redis將對(duì)需要寫操作的命令返回錯(cuò)誤信息,如SET,LPUSH操作,對(duì)GET這樣的只讀操作會(huì)繼續(xù)響應(yīng)。
總之,一句話,對(duì)一個(gè)連接了從redis的redis實(shí)例設(shè)置maxmemory時(shí),建議設(shè)置一個(gè)較高的值,使系統(tǒng)有多余的內(nèi)存用于主從同步,當(dāng)然,如果eviction policy設(shè)置成noevcition,則不需要這么設(shè)置。
