Redis是一種高級(jí)key-value數(shù)據(jù)庫。它跟memcached類似,不過數(shù)據(jù)可以持久化,而且支持的數(shù)據(jù)類型很豐富。有字符串,鏈表,集 合和有序集合。支持在服務(wù)器端計(jì)算集合的并,交和補(bǔ)集(difference)等,還支持多種排序功能。所以Redis也可以被看成是一個(gè)數(shù)據(jù)結(jié)構(gòu)服務(wù)器。
Redis的所有數(shù)據(jù)都是保存在內(nèi)存中(效率高),然后不定期的通過異步方式保存到磁盤上(這稱為“半持久化模式”);也可以把每一次數(shù)據(jù)變化都寫入到一個(gè)append only file(aof)里面(這稱為“全持久化模式”)。
關(guān)于Redis更多的簡(jiǎn)介請(qǐng)參考Redis官方網(wǎng)站中文版,在這里我僅僅給出Redis在Centos7上的安裝部署。
步驟一:下載Redis安裝包
首先從官網(wǎng)下在redis正式版的壓縮包redis-2.8.19.tar.gz:
cd /home/downloads
wget http://download.redis.io/releases/redis-2.8.19.tar.gz
步驟二:編譯源程序
解壓和編譯
tar -zxvf redis-2.8.19.tar.gz
cd redis-2.8.19/src
//編譯
make
…….此處是大量編譯過程,省略。可能有一些警告,不去官它們………….
CC setproctitle.o
CC hyperloglog.o
CC latency.o
CC sparkline.o
LINK redis-server
INSTALL redis-sentinel
CC redis-cli.o
LINK redis-cli
CC redis-benchmark.o
LINK redis-benchmark
CC redis-check-dump.o
LINK redis-check-dump
CC redis-check-aof.o
LINK redis-check-aof
Hint: It's a good idea to run ‘make test' ;)
進(jìn)入src進(jìn)行安裝:
//安裝過程提示
Hint: It's a good idea to run ‘make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
這時(shí)候,我們可以看看src下的文件:
可以看到此時(shí),src文件夾下出現(xiàn)了一些綠色的文件,這些文件就是我們以后需要用到的命令文件
步驟三:移動(dòng)文件
移動(dòng)文件,便于管理:(所有源代碼安裝的軟件都安裝在/usr/local下,如apache等)
創(chuàng)建兩個(gè)文件夾,bin用于存放命令,etc擁有存放配置文件。
mkdir -p /usr/local/redis/etc
mkdir -p /usr/local/redis/etc
-p是遞歸創(chuàng)建。
接下來,將redis-2.8.19文件夾下的redis.conf復(fù)制到/usr/local/redis/etc/
并將src目錄下的7個(gè)命令文件(綠色的),移動(dòng)到/usr/local/redis/bin/
[lsgozi@localhost src]$ cd ..
[lsgozi@localhost redis-2.8.19]$ ls
00-RELEASENOTES COPYING Makefile redis.conf sentinel.conf utils
BUGS deps MANIFESTO runtest src
CONTRIBUTING INSTALL README runtest-sentinel tests
[lsgozi@localhost redis-2.8.19]$ mv ./redis.conf /usr/local/redis/etc/
[lsgozi@localhost redis-2.8.19]$ cd src
[lsgozi@localhost src]$ mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server /usr/local/redis/bin/
步驟四:?jiǎn)?dòng)Redis服務(wù):
首先進(jìn)入剛才安裝redis的目錄:
[lsgozi@localhost src]$ cd /usr/local/redis/bin
[lsgozi@localhost bin]$ ls
mkreleasehdr.sh redis-check-aof redis-cli redis-server
redis-benchmark redis-check-dump redis-sentinel
之后我們啟動(dòng)redis服務(wù)。啟動(dòng)redis服務(wù)需要用到命令redis-server
[lsgozi@localhost bin]$ ./redis-server
結(jié)果:
但是,這樣做的話,我們并沒有使用etc的下的配置文件進(jìn)行啟動(dòng)(圖中紅線部分)。
如果希望通過指定的配置文件啟動(dòng),需要在啟動(dòng)時(shí)指定配置文件:
這里我們先用ctrl+C來終止服務(wù),然后查看redis服務(wù)是否終止干凈了,之后通過設(shè)置配置文件來啟動(dòng)服務(wù):
按下ctrl+c后(^C):
^C[32138 | signal handler] (1463921540) Received SIGINT scheduling shutdown...
[32138] 22 May 20:52:20.380 # User requested shutdown...
[32138] 22 May 20:52:20.380 * Saving the final RDB snapshot before exiting.
[32138] 22 May 20:52:20.393 * DB saved on disk
[32138] 22 May 20:52:20.393 # Redis is now ready to exit, bye bye...
運(yùn)行:pstree -p | grep redis 發(fā)現(xiàn)redis服務(wù)已經(jīng)被終止干凈
現(xiàn)在我們帶上配置文件 /usr/local/etc/redis.conf 運(yùn)行redis
[lsgozi@localhost bin]$ ./redis-server /usr/local/redis/etc/redis.conf
但是,現(xiàn)在redis仍然是在前臺(tái)運(yùn)行。
如果要后臺(tái)啟動(dòng)該怎么辦呢?
在這里我們用—-直接將命令丟到后臺(tái)中“執(zhí)行”的 ?可以嗎?
答案是不可以的,Redis的后臺(tái)啟動(dòng)并運(yùn)行需要通過配置文件中的參數(shù)設(shè)置。如果需要在后臺(tái)運(yùn)行,把daemonize配置項(xiàng)改為yes
vim /usr/local/redis/etc/redis.conf
搜索 :'\daemonize'
把daemonize配置項(xiàng)改為yes
保存退出
之后我們?cè)俅问褂门渲梦募?dòng)redis-server。
可以看到,redis是后臺(tái)啟動(dòng)了,并且通過ps命令可以查看到redis正在運(yùn)行。
[lsgozi@localhost bin]\$ ./redis-server /usr/local/redis/etc/redis.conf
[lsgozi@localhost bin]\$ ps -ef | grep redis
root 13154 1 0 22:53 ? 00:00:00 ./redis-server *:6379
neil 13162 8143 0 22:54 pts/0 00:00:00 grep --color=auto redis
[lsgozi@localhost bin]$ pstree -p | grep redis
|-redis-server(13154)-+-{redis-server}(13156)
| `-{redis-server}(13157)
Redis服務(wù)端默認(rèn)連接端口是6379.
就好比 mysql 或 mariadb 服務(wù)端默認(rèn)連接端口是3306
在平時(shí),我們往往需要查看6379端口是否被占用??梢杂靡韵旅睿?/p>
netstat -tunpl | grep 6379
注意,redis服務(wù)需要 root 權(quán)限才能查看,不然只能檢查到6379被某個(gè)進(jìn)程占用,但是看不到進(jìn)程名稱。
至此,redis服務(wù)已經(jīng)按照配置文件啟動(dòng)成功??!
步驟五:客戶端登錄
[lsgozi@localhost bin]$ /usr/local/redis/bin/redis-cli
回車后如果提示:
[lsgozi@localhost bin]$ /usr/local/redis/bin/redis-cli
127.0.0.1:6379>//提示
則表明客戶端登錄成功
步驟六:關(guān)閉Redis服務(wù)
停止Redis實(shí)例
我們可以使用pkill redis-server
[lsgozi@localhost bin]$ pkill redis-server
[lsgozi@localhost bin]$ netstat -tunpl | grep 6379
[lsgozi@localhost bin]$
[lsgozi@localhost bin]$ pstree -p | grep redis
[lsgozi@localhost bin]$
[lsgozi@localhost bin]$
[lsgozi@localhost bin]$ /usr/local/redis/bin/redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
not connected> exit
關(guān)閉之后,發(fā)現(xiàn)6379就不再被占用了,redis的進(jìn)程也都沒有了。
客戶登陸也無法成功了。
也可以使用/usr/local/redis/bin/redis-cli shutdown,這種方法使用客戶端命令redis-cli 進(jìn)行Redis服務(wù)的停止
[lsgozi@localhost bin]]$ ./redis-server /usr/local/redis/etc/redis.conf
[lsgozi@localhost bin]$ pstree -p | grep redis
|-redis-server(13509)-+-{redis-server}(13511)
| `-{redis-server}(13512)
[lsgozi@localhost bin]$ /usr/local/redis/bin/redis-cli shutdown
[lsgozi@localhost bin]$ pstree -p | grep redis
[lsgozi@localhost bin]$
[lsgozi@localhost bin]$ sudo netstat -tunpl | grep 6379
[lsgozi@localhost bin]$
當(dāng)然關(guān)閉某個(gè)服務(wù)還可以使用 killall 和 kill -9.
附錄:更多的關(guān)于 /usr/local/redis/etc/redis.conf 的配置信息
1、daemonize 如果需要在后臺(tái)運(yùn)行,把該項(xiàng)改為yes
2、pidfile 配置多個(gè)pid的地址 默認(rèn)在/var/run/redis.pid
3、bind 綁定ip,設(shè)置后只接受來自該ip的請(qǐng)求
4、port 監(jiān)聽端口,默認(rèn)是6379
5、loglevel 分為4個(gè)等級(jí):debug verbose notice warning
6、logfile 用于配置log文件地址
7、databases 設(shè)置數(shù)據(jù)庫個(gè)數(shù),默認(rèn)使用的數(shù)據(jù)庫為0
8、save 設(shè)置redis進(jìn)行數(shù)據(jù)庫鏡像的頻率。
9、rdbcompression 在進(jìn)行鏡像備份時(shí),是否進(jìn)行壓縮
10、dbfilename 鏡像備份文件的文件名
11、Dir 數(shù)據(jù)庫鏡像備份的文件放置路徑
12、Slaveof 設(shè)置數(shù)據(jù)庫為其他數(shù)據(jù)庫的從數(shù)據(jù)庫
13、Masterauth 主數(shù)據(jù)庫連接需要的密碼驗(yàn)證
14、Requriepass 設(shè)置 登陸時(shí)需要使用密碼
15、Maxclients 限制同時(shí)使用的客戶數(shù)量
16、Maxmemory 設(shè)置redis能夠使用的最大內(nèi)存
17、Appendonly 開啟append only模式
18、Appendfsync 設(shè)置對(duì)appendonly.aof文件同步的頻率(對(duì)數(shù)據(jù)進(jìn)行備份的第二種方式)
19、vm-enabled 是否開啟虛擬內(nèi)存支持 (vm開頭的參數(shù)都是配置虛擬內(nèi)存的)
20、vm-swap-file 設(shè)置虛擬內(nèi)存的交換文件路徑
21、vm-max-memory 設(shè)置redis使用的最大物理內(nèi)存大小
22、vm-page-size 設(shè)置虛擬內(nèi)存的頁大小
23、vm-pages 設(shè)置交換文件的總的page數(shù)量
24、vm-max-threads 設(shè)置VM IO同時(shí)使用的線程數(shù)量
25、Glueoutputbuf 把小的輸出緩存存放在一起
26、hash-max-zipmap-entries 設(shè)置hash的臨界值
27、Activerehashing 重新hash
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Centos7下Redis3.2.8最新版本安裝教程
- CentOS6.5下Redis安裝與配置詳細(xì)步驟
- CentOS 7下安裝 redis 3.0.6并配置集群的過程詳解
- CentOS系統(tǒng)安裝Redis及Redis的PHP擴(kuò)展詳解
- Redis3.2.11在centos9安裝與卸載過程詳解