Redis快速入门:安装、配置和操作
Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API。從2010年3月15日起,Redis的開發工作由VMware主持。
如何安裝Redis?
Redis的官方下載站是http://redis.io/download,可以去上面下載最新的安裝程序下來,我寫此文章時的的穩定版本是2.2.12。
怎么安裝 Redis數據庫呢?下面將介紹Linux版本的安裝方法:
步驟一: 下載Redis
下載安裝包:wget http://redis.googlecode.com/files/redis-2.2.12.tar.gz
[root@localhost 4setup]# wget http://redis.googlecode.com/files/redis-2.2.12.tar.gz--19:06:56-- http://redis.googlecode.com/files/redis-2.2.12.tar.gz
正在解析主機 redis.googlecode.com... 74.125.71.82
Connecting to redis.googlecode.com|74.125.71.82|:80... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:455240 (445K) [application/x-gzip]
Saving to: `redis-2.2.12.tar.gz'
100%[==========================================>] 455,24034.8K/s in 13s
19:07:16 (34.8 KB/s) - `redis-2.2.12.tar.gz' saved [455240/455240]
[root@localhost 4setup]#
步驟二: 編譯源程序
[root@localhost 4setup]# ll總計 29168
-rw-r--r--1 root root 4552402011-07-22 redis-2.2.12.tar.gz
[root@localhost 4setup]# tar xzf redis-2.2.12.tar.gz
[root@localhost 4setup]# cd redis-2.2.12
[root@localhost redis-2.2.12]# make
cd src && make all
make[1]: Entering directory `/root/4setup/redis-2.2.12/src'
步驟三: 啟動Redis服務
src/redis-server[root@localhost redis-2.2.12]# src/redis-server
[6246] 05 Aug 19:17:22 # Warning: no config file specified, using the default config. In order to specify a config file use 'redis-server /path/to/redis.conf'
[6246] 05 Aug 19:17:22* Server started, Redis version 2.2.12
[6246] 05 Aug 19:17:22 # WARNING overcommit_memory issetto0! Background save may fail under low memory condition. Tofix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[6246] 05 Aug 19:17:22* The server isnow ready to accept connections on port 6379
[6246] 05 Aug 19:17:22-0 clients connected (0 slaves), 539544 bytes in use
Redis 服務端的默認連接端口是 6379。
步驟四: 將Redis作為 Linux 服務隨機啟動
vi /etc/rc.local, 使用vi編輯器打開隨機啟動配置文件,并在其中加入下面一行代碼。
/root/4setup/redis-2.2.12/src/redis-server步驟五: 客戶端連接驗證
新打開一個Session輸入:src/redis-cli,如果出現下面提示,那么您就可以開始Redis之旅了。
[root@localhost redis-2.2.12]# src/redis-cliredis 127.0.0.1:6379>
步驟六: 查看Redis日志
查看服務器端session,即可對Redis的運行狀況進行查看或分析了。
[6246] 05 Aug 19:24:33-0 clients connected (0 slaves), 539544 bytes in use[6246] 05 Aug 19:24:37- Accepted 127.0.0.1:51381
[6246] 05 Aug 19:24:38-1 clients connected (0 slaves), 547372 bytes in use
以上的幾個步驟就OK了!!這樣一個簡單的Redis數據庫就可以暢通無阻地運行起來了。
步驟七: 停止Redis實例
最簡單的方法是在啟動實例的session中,直接使用Control-C來將實例停止。
我們還可以用客戶端來停止服務,如可以用shutdown來停止Redis實例, 具體如下:
[root@localhost redis-2.2.12]# src/redis-cli shutdown?
如何配置Redis?
如果是一個專業的DBA,那么實例啟動時會加很多的參數以便使系統運行的非常穩定,這樣就可能會在啟動時在Redis后面加一個參數,以指定配置文件的 路徑,就象mysql一樣的讀取啟動配置文件的方式來啟動數據庫。源碼編譯完成后,在redis-2.2.12目錄下有一個redis.conf文件,這 個文件即是Redis的配置文件,用配置文件來啟動Redis的方法如下:
[root@localhost redis-2.2.12]# src/redis-server redis.conf[6353] 05 Aug 19:36:45* Server started, Redis version 2.2.12
[6353] 05 Aug 19:36:45 # WARNING overcommit_memory issetto0! Background save may fail under low memory condition. Tofix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[6353] 05 Aug 19:36:45* The server isnow ready to accept connections on port 6379
[6353] 05 Aug 19:36:45-0 clients connected (0 slaves), 539540 bytes in use
Redis支持很多的參數,但都有默認值。
●daemonize:
默認情況下,redis不是在后臺運行的,如果需要在后臺運行,把該項的值更改為yes。
●pidfile
當Redis在后臺運行的時候,Redis默認會把pid文件放在/var/run/redis.pid,你可以配置到其他地址。當運行多個redis服務時,需要指定不同的pid文件和端口。
●bind
指定Redis只接收來自于該IP地址的請求,如果不進行設置,那么將處理所有請求,在生產環境中最好設置該項。
●port
監聽端口,默認為6379。
●timeout
設置客戶端連接時的超時時間,單位為秒。當客戶端在這段時間內沒有發出任何指令,那么關閉該連接。
●loglevel
log等級分為4級,debug, verbose, notice, 和warning。生產環境下一般開啟notice。
●logfile
配置log文件地址,默認使用標準輸出,即打印在命令行終端的窗口上。
●databases
設置數據庫的個數,可以使用SELECT 命令來切換數據庫。默認使用的數據庫是0。
●save
設置Redis進行數據庫鏡像的頻率。
if(在60秒之內有10000個keys發生變化時){
進行鏡像備份
}else if(在300秒之內有10個keys發生了變化){
進行鏡像備份
}else if(在900秒之內有1個keys發生了變化){
進行鏡像備份
}
?
●rdbcompression
在進行鏡像備份時,是否進行壓縮。
●dbfilename
鏡像備份文件的文件名。
●dir
數據庫鏡像備份的文件放置的路徑。這里的路徑跟文件名要分開配置是因為Redis在進行備份時,先會將當前數據庫的狀態寫入到一個臨時文件中,等備份完 成時,再把該該臨時文件替換為上面所指定的文件,而這里的臨時文件和上面所配置的備份文件都會放在這個指定的路徑當中。
●slaveof
設置該數據庫為其他數據庫的從數據庫。
●masterauth
當主數據庫連接需要密碼驗證時,在這里指定。
●requirepass
設置客戶端連接后進行任何其他指定前需要使用的密碼。警告:因為redis速度相當快,所以在一臺比較好的服務器下,一個外部的用戶可以在一秒鐘進行150K次的密碼嘗試,這意味著你需要指定非常非常強大的密碼來防止暴力破解。
●maxclients
限制同時連接的客戶數量。當連接數超過這個值時,redis將不再接收其他連接請求,客戶端嘗試連接時將收到error信息。
●maxmemory
設置redis能夠使用的最大內存。 當內存滿了的時候,如果還接收到set命令,redis將先嘗試剔除設置過expire信息的key,而不管該key的過期時間還沒有到達。在刪除時,將 按照過期時間進行刪除,最早將要被過期的key將最先被刪除。如果帶有expire信息的key都刪光了,那么將返回錯誤。這樣,redis將不再接收寫 請求,只接收get請求。maxmemory的設置比較適合于把redis當作于類似memcached的緩存來使用。
●appendonly
默認情況下,redis會在后臺異步的把數據庫鏡像備份到磁盤,但是該備份是非常耗時的,而且備份也不能很頻繁,如果發生諸如拉閘限電、拔插頭等狀況, 那么將造成比較大范圍的數據丟失。所以redis提供了另外一種更加高效的數據庫備份及災難恢復方式。開啟append only模式之后,redis會把所接收到的每一次寫操作請求都追加到appendonly.aof文件中,當redis重新啟動時,會從該文件恢復出之 前的狀態。但是這樣會造成appendonly.aof文件過大,所以redis還支持了BGREWRITEAOF指令,對appendonly.aof 進行重新整理。所以我認為推薦生產環境下的做法為關閉鏡像,開啟appendonly.aof,同時可以選擇在訪問較少的時間每天對 appendonly.aof進行重寫一次。
●appendfsync
設置對appendonly.aof文件進行同步的頻率。always表示每次有寫操作都進行同步,everysec表示對寫操作進行累積,每秒同步一次。這個需要根據實際業務場景進行配置。
●vm-enabled
是否開啟虛擬內存支持。因為redis是一個內存數據庫,而且當內存滿的時候,無法接收新的寫請求,所以在redis 2.0中,提供了虛擬內存的支持。但是需要注意的是,redis中,所有的key都會放在內存中,在內存不夠時,只會把value值放入交換區。這樣保證 了雖然使用虛擬內存,但性能基本不受影響,同時,你需要注意的是你要把vm-max-memory設置到足夠來放下你的所有的key。
●vm-swap-file
設置虛擬內存的交換文件路徑。
●vm-max-memory
這里設置開啟虛擬內存之后,redis將使用的最大物理內存的大小。默認為0,redis將把他所有的能放到交換文件的都放到交換文件中,以盡量少的使用物理內存。在生產環境下,需要根據實際情況設置該值,最好不要使用默認的0。
●vm-page-size
設置虛擬內存的頁大小,如果你的value值比較大,比如說你要在value中放置博客、新聞之類的所有文章內容,就設大一點,如果要放置的都是很小的內容,那就設小一點。
●vm-pages
設置交換文件的總的page數量,需要注意的是,page table信息會放在物理內存中,每8個page就會占據RAM中的1個byte。總的虛擬內存大小 = vm-page-size * vm-pages。
●vm-max-threads
設置VM IO同時使用的線程數量。因為在進行內存交換時,對數據有編碼和解碼的過程,所以盡管IO設備在硬件上本上不能支持很多的并發讀寫,但是還是如果你所保存的vlaue值比較大,將該值設大一些,還是能夠提升性能的。
●glueoutputbuf
把小的輸出緩存放在一起,以便能夠在一個TCP packet中為客戶端發送多個響應,具體原理和真實效果我不是很清楚。所以根據注釋,你不是很確定的時候就設置成yes。
●hash-max-zipmap-entries
在redis 2.0中引入了hash數據結構。當hash中包含超過指定元素個數并且最大的元素沒有超過臨界時,hash將以一種特殊的編碼方式(大大減少內存使用)來存儲,這里可以設置這兩個臨界值。
●activerehashing
開啟之后,redis將在每100毫秒時使用1毫秒的CPU時 間來對redis的hash表進行重新hash,可以降低內存的使用。當你的使用場景中,有非常嚴格的實時性需要,不能夠接受Redis時不時的對請求有 2毫秒的延遲的話,把這項配置為no。如果沒有這么嚴格的實時性要求,可以設置為yes,以便能夠盡可能快的釋放內存。
?
操作Redis數據庫
下面我們來簡單的操作一下數據庫。
1、插入數據
redis 127.0.0.1:6379>set name wwlOK
設置一個key-value對。
2、查詢數據
redis 127.0.0.1:6379>get name"wwl"
取出key所對應的value。
3、刪除鍵值
redis 127.0.0.1:6379> del name刪除這個key及對應的value。
4、驗證鍵是否存在
redis 127.0.0.1:6379>exists name(integer) 0
其中0,代表此key不存在;1代表存在。
轉載于:https://www.cnblogs.com/shenming/p/3623060.html
總結
以上是生活随笔為你收集整理的Redis快速入门:安装、配置和操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows python3.2 sh
- 下一篇: linux cmake编译源码,linu