使用Redis設(shè)置最大內(nèi)存的方法有兩種:
在啟動(dòng)Redis服務(wù)器時(shí),可以使用--maxmemory <bytes>
選項(xiàng)來(lái)設(shè)置最大內(nèi)存。例如,要將最大內(nèi)存設(shè)置為1GB,可以使用以下命令啟動(dòng)Redis服務(wù)器:
redis-server --maxmemory 1gb
或者,在Redis配置文件redis.conf
中添加以下行:
maxmemory 1gb
重啟Redis服務(wù)器后,最大內(nèi)存設(shè)置將生效。
在Redis運(yùn)行時(shí),可以使用CONFIG SET
命令動(dòng)態(tài)地設(shè)置最大內(nèi)存。例如,要將最大內(nèi)存設(shè)置為1GB,可以使用以下命令:
redis-cli config set maxmemory 1gb
這將立即生效,無(wú)需重啟Redis服務(wù)器。
在設(shè)置最大內(nèi)存時(shí),可以使用單位來(lái)指定內(nèi)存大小。常用的單位有b
(字節(jié))、k
(千字節(jié))、m
(兆字節(jié))和g
(吉字節(jié))。例如,1gb
表示1GB,500mb
表示500MB。如果不指定單位,默認(rèn)為字節(jié)。
需要注意的是,當(dāng)Redis達(dá)到最大內(nèi)存限制時(shí),會(huì)觸發(fā)內(nèi)存淘汰策略。可以通過(guò)maxmemory-policy
配置項(xiàng)來(lái)指定淘汰策略,默認(rèn)為noeviction
(不淘汰,直接返回錯(cuò)誤)。常用的淘汰策略有volatile-lru
(淘汰設(shè)置了過(guò)期時(shí)間的鍵,使用LRU算法)和allkeys-lru
(淘汰所有鍵,使用LRU算法)??梢栽赗edis配置文件中設(shè)置該配置項(xiàng),或者在運(yùn)行時(shí)使用CONFIG SET
命令進(jìn)行動(dòng)態(tài)設(shè)置。