配置文件Redis.conf解讀
首先,如果我們希望通過配置文件來配置redis並啓動的話,需要將解壓後的文件夾中的redis.conf複製到安裝的redis目錄下。
cp redis.conf /home/redis
並且啓動redis的時候,需要加上配置文件的路徑。
./redis-server /home/redis/redis.comf
常用配置項
使用less -mN redis.conf查看配置文件。
1.redis默認不使用守護進程啓動,可以通過配置改變
daemonize no //將no改爲yes就是守護進程
2.當redis以守護進程啓動時,會將pid寫入文件,可以用pidfile設置
pidfile /var/run/redis_6379.pid
3.指定端口(6379代表了一個歌手)
port 6379
4.綁定主機地址,如果綁定了127.0.0.1,就不可以遠程連接了
bind 127.0.0.1
5.當客戶端閒置多久關閉連接(0代表關閉該功能)
timeout 300
6.設置數據庫數量,默認爲0,最多爲16個(0-15)
databases 16 //可以使用select <dbid>指定數據庫id
7.指定更新本地的時間(可以同時配置多個條件)
save <seconds> <changes> //在seconds時間內做了changes次改變
8.可以指定是否採用壓縮模式(若想節省CPU時間,數據庫文件會變得很大)
rdbcompression yes //默認開啓LZF壓縮
9.指定本地數據庫名字,存放目錄
dbfilename dump.rdb //dump.rdb數據庫名字
dir ./ //放在和bin同級的目錄
10.設置redis連接密碼,客戶端加上AUTH 連接
requirepass foobared
客戶端連接:
./bin/redis-cli -h IP地址 -p 端口 -a 密碼
11.可以指定同一時間連接的客戶端數目
maxclients 128
12.指定Redis最大內存限制
maxmemory <byte> //默認156M
當達到最大內存時,redis會先嚐試清除快要到期的的key,如果還是不夠,就不能進行寫操作了,但是可以進行讀操作。
redis的VM機制,將key放在內存中,將value放在swap區。
解決Redis內存會溢出的問題
一、設置key的有效時間
二、採用LRU算法動態將不用的數據刪除。
內存管理的一種頁面置換算法,對於在內存中但又不用的數據塊(內存塊)叫做LRU,操作系統會根據哪些數據屬於LRU而將其移出內存而騰出空間來加載另外的數據。
1.volatile-ru:設定超時時間的數據中,刪除最不常使用的數據
2.allkeys-ru:查詢所有的key中最近最不常使用的數據進行刪除,這是應用最廣泛的策略
3.volatile-random:在已經設定了超時的數據中隨機刪除.
4.allkeys-random:查詢所有的key,之後隨機刪除
5.volatile-ttl:查詢全部設定超時時間的數據,之後排序,將馬上將要過期的數據進行刪除操作
6.Noeviction:如果設置爲該屬性,則不會進行刪除操作,如果內存溢出則報錯返回
7.volatile-fu:從所有配置了過期時間的鍵中驅逐使用頻率最少的鍵
8.allkeys-lfu:從所有鍵中驅逐使用頻率最少的鍵
關閉Redis
一、非正常關閉(斷電、殺死進程,容易造成數據丟失)
ps -ef | grep -i redis
kill -9 PID
二、正常關閉(數據不易丟失)
./bin/redis-cil shutdown
如果有密碼,需要先登錄,再使用shutdown關閉
正常關閉的話,在內存中的數據會儲存到本地數據庫中。