#1.配置緩存內存限制和清理策略 #作為緩存服務器,如果不加以限制內存的話,就很有可能出現將整台服務器內存都耗光的情況,可以在redis的配置文件里面設置: #example: # 限定最多使用1.5GB內存 maxmemory 1536mb #如果內存到達了指定的上限,還要往redis里面添加更多的緩存內容,需要設置清理內容的策略: #默認為0,沒有指定最大緩存,如果有新的數據添加,超過最大內存,則會使redis崩潰,所以一點要設置。 #設置maxmemory之后,配合的要設置緩存數據回收策略。 # 設置策略為清理最少使用的key對應的數據 maxmemory-policy allkeys-lru #下面為redis官網上的幾種清理策略: #volatile-lru:從已設置過期時間的數據集(server.db[i].expires)中挑選最近最少使用的數據淘汰 #volatile-ttl:從已設置過期時間的數據集(server.db[i].expires)中挑選將要過期的數據淘汰 #volatile-random:從已設置過期時間的數據集(server.db[i].expires)中任意選擇數據淘汰 #allkeys-lru:從數據集(server.db[i].dict)中挑選最近最少使用的數據淘汰 #allkeys-random:從數據集(server.db[i].dict)中任意選擇數據淘汰 #no-enviction(驅逐):禁止驅逐數據 #redis回收算法,實際不是嚴謹的LRU算法,而是抽樣回收數據,這樣算是為了減少消耗內存使用,但是抽樣回收的緩存和全部數據回收緩存差異非常小,或者根本就沒有。 #先預測好系統所需要的內存高峰,部署相對應內存的緩存服務器。 #設置maxmemory和相對應的回收策略算法,設置最好為物理內存的3/4,或者比例更小,因為redis復制數據等其他服務時,也是需要緩存的。 #以防緩存數據過大致使redis崩潰,造成系統出錯不可用。犧牲一部分緩存數據,保存整體系統可用性。 #如果數據是 冪律分布 也就是某些數據訪問頻率比較高 則適合allkeys-lru #如果數據是 平等分布 也就是訪問頻率比較平均 則適合allkeys-random #配對的配置: maxmemory-samples 3 #默認值3,上面LRU和最小TTL策略並非嚴謹的策略,而是大約估算的方式,因此可以選擇取樣值以便檢查 #2.我的需求是只把redis當作緩存來用,所以持久化到硬盤對我的需求來說沒有意義。配置 save "" #3.增加ip綁定(可選) redis 不夠安全,# bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 #指定Redis 只接收來自於該IP 地址的請求,如果不進行設置,那么將處理所有請求,系統默認是注釋掉的,不開啟。在生產環境中為了安全最好設置該項。 4.maxclients 10000 #限制同時連接的客戶數量。當連接數超過這個值時,redis 將不再接收其他連接請求,客戶端嘗試連接時將收到error 信息。默認為10000,要考慮系統文件描述符限制,不宜過大,浪費文件描述符,具體多少根據具體情況而定 #5.當一個redis支撐不了的時候再考慮Master-Slave模式
