三,限制部分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都会针对写请求返回错误信息