三,限制部分redis
1:maxclients:設置redis同時能夠與多少個客戶端進行鏈接。默認狀況下爲10000個客戶端。當你算法
沒法設置進程文件句柄限制時,redis會設置爲當前的文件句柄限制值減去32,由於redis會爲自緩存
身內部處理邏輯留一些句柄出來。若是達到了此限制,redis則會拒絕新的鏈接請求,而且向這dom
些鏈接請求方發出max number of clients reached以做迴應。spa
2:maxmemory:設置redis可使用的內存量。一旦到達內存使用上限,redis將會試圖移除內部數orm
據,移除規則能夠經過maxmemory-policy來指定。若是redis沒法根據移除規則來移除內存中的隊列
數據,或者設置了不容許移除,那麼redis則會針對那些須要申請內存的指令返回錯誤信進程
息,好比SET、LPUSH等。可是對於無內存申請的指令,仍然會正常響應,好比GET等。內存
若是你的redis是主redis(說明你的redis有從redis),那麼在設置內存使用上限時,需同步
要在系統中留出一些內存空間給同步隊列緩存,只有在你設置的是「不移除」的狀況下,纔不用
考慮這個因素
3:maxmemory-samples:設置樣本數量,LRU算法和最小TTL算法都並不是是精確的算法,而是估算值,
因此你能夠設置樣本的大小,redis默認會檢查這麼多個key並選擇其中LRU的那個
4:maxmemory-policy:設置內存移除規則,redis提供了多達6種的移除規則:
(1)volatile-lru:使用LRU算法移除key,只對設置了過時時間的鍵
(2)allkeys-lru:使用LRU算法移除key
(3)volatile-random:在過時集合中移除隨機的key,只對設置了過時時間的鍵
(4)allkeys-random:移除隨機的key
(5)volatile-ttl:移除那些TTL值最小的key,即那些最近要過時的key
(6)noeviction:不進行移除。針對寫操做,只是返回錯誤信息
不管使用上述哪種移除規則,若是沒有合適的key能夠移除的話,redis都會針對寫請求返回錯誤信息