任何一個後端應用,包括代碼都要考慮對於CPU和內存的影響.redis本質上相似於nodejs,單進程、單線程,事件驅動,但不一樣的是redis是CPU密集型的。這裏列出了redis與內存CPU的相關考慮點。node
同nodejs相似
* 優勢:
1. 採用多路 I/O 複用技術可讓單個線程高效的處理多個鏈接請求;
2. 避免線程切換而消耗CPU
* 缺點:
1. 沒法發揮多核CPU性能,不過能夠經過在單機開多個Redis實例來完善redis
redis-cli info | grep connected_clients
查看當前鏈接redis-cli
登陸後,client list
查看全部客戶端鏈接,client kill ${ip}:${port}
關閉鏈接;maxclients: 10000
,默認10000;timeout
設置redis的keepalive時間。客戶端斷連的包發出去後,redis server沒有接受到,則會出現redis server覺得鏈接正常的狀況。所以須要在redis server 啓動超時設置,若是在必定的時間內,客戶端沒有消息過來,則redis server主動斷開鏈接。echo -n "Max open files 3000:3000" > /proc/PID/limits
/etc/security/limits.conf
; redis服務器默認設置的最大鏈接數maxclients是10000,可是受服務器最大文件數影響,服務器默認最大文件數是1024,因此redis最大鏈接也爲1024-32=992; 解決辦法部署
OK: init configuration file into /root/.redis-monitor/redis_monitor_config.py
.
OK: database is initialed into /root/.redis-monitor/redis_monitor.db
.後端