Redis是一種高級key-value數(shù)據(jù)庫。它跟memcached類似,不過數(shù)據(jù)可以持久化,而且支持的數(shù)據(jù)類型很豐富。有字符串,鏈表,集 合和有序集合。支持在服務器端計算集合的并,交和補集(difference)等,還支持多種排序功能。所以Redis也可以被看成是一個數(shù)據(jù)結構服務器。
Redis的所有數(shù)據(jù)都是保存在內存中(效率高),然后不定期的通過異步方式保存到磁盤上(這稱為“半持久化模式”);也可以把每一次數(shù)據(jù)變化都寫入到一個append only file(aof)里面(這稱為“全持久化模式”)。
關于Redis更多的簡介請參考Redis官方網站中文版,在這里我僅僅給出Redis在Centos7上的安裝部署。
步驟一:下載Redis安裝包
首先從官網下在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' ;)
進入src進行安裝:
//安裝過程提示
Hint: It's a good idea to run ‘make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
這時候,我們可以看看src下的文件:

可以看到此時,src文件夾下出現(xiàn)了一些綠色的文件,這些文件就是我們以后需要用到的命令文件
步驟三:移動文件
移動文件,便于管理:(所有源代碼安裝的軟件都安裝在/usr/local下,如apache等)
創(chuàng)建兩個文件夾,bin用于存放命令,etc擁有存放配置文件。
mkdir -p /usr/local/redis/etc
mkdir -p /usr/local/redis/etc
-p是遞歸創(chuàng)建。
接下來,將redis-2.8.19文件夾下的redis.conf復制到/usr/local/redis/etc/
并將src目錄下的7個命令文件(綠色的),移動到/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/
步驟四:啟動Redis服務:
首先進入剛才安裝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
之后我們啟動redis服務。啟動redis服務需要用到命令redis-server
[lsgozi@localhost bin]$ ./redis-server
結果:

但是,這樣做的話,我們并沒有使用etc的下的配置文件進行啟動(圖中紅線部分)。
如果希望通過指定的配置文件啟動,需要在啟動時指定配置文件:
這里我們先用ctrl+C來終止服務,然后查看redis服務是否終止干凈了,之后通過設置配置文件來啟動服務:
按下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...
運行:pstree -p | grep redis 發(fā)現(xiàn)redis服務已經被終止干凈
現(xiàn)在我們帶上配置文件 /usr/local/etc/redis.conf 運行redis
[lsgozi@localhost bin]$ ./redis-server /usr/local/redis/etc/redis.conf

但是,現(xiàn)在redis仍然是在前臺運行。
如果要后臺啟動該怎么辦呢?
在這里我們用—-直接將命令丟到后臺中“執(zhí)行”的 ?可以嗎?
答案是不可以的,Redis的后臺啟動并運行需要通過配置文件中的參數(shù)設置。如果需要在后臺運行,把daemonize配置項改為yes
vim /usr/local/redis/etc/redis.conf
搜索 :'\daemonize'
把daemonize配置項改為yes
保存退出
之后我們再次使用配置文件啟動redis-server。
可以看到,redis是后臺啟動了,并且通過ps命令可以查看到redis正在運行。
[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服務端默認連接端口是6379.
就好比 mysql 或 mariadb 服務端默認連接端口是3306
在平時,我們往往需要查看6379端口是否被占用??梢杂靡韵旅睿?/p>
netstat -tunpl | grep 6379
注意,redis服務需要 root 權限才能查看,不然只能檢查到6379被某個進程占用,但是看不到進程名稱。
至此,redis服務已經按照配置文件啟動成功?。?/p>
步驟五:客戶端登錄
[lsgozi@localhost bin]$ /usr/local/redis/bin/redis-cli
回車后如果提示:
[lsgozi@localhost bin]$ /usr/local/redis/bin/redis-cli
127.0.0.1:6379>//提示
則表明客戶端登錄成功
步驟六:關閉Redis服務
停止Redis實例
我們可以使用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
關閉之后,發(fā)現(xiàn)6379就不再被占用了,redis的進程也都沒有了。
客戶登陸也無法成功了。
也可以使用/usr/local/redis/bin/redis-cli shutdown,這種方法使用客戶端命令redis-cli 進行Redis服務的停止
[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]$
當然關閉某個服務還可以使用 killall 和 kill -9.
附錄:更多的關于 /usr/local/redis/etc/redis.conf 的配置信息
1、daemonize 如果需要在后臺運行,把該項改為yes
2、pidfile 配置多個pid的地址 默認在/var/run/redis.pid
3、bind 綁定ip,設置后只接受來自該ip的請求
4、port 監(jiān)聽端口,默認是6379
5、loglevel 分為4個等級:debug verbose notice warning
6、logfile 用于配置log文件地址
7、databases 設置數(shù)據(jù)庫個數(shù),默認使用的數(shù)據(jù)庫為0
8、save 設置redis進行數(shù)據(jù)庫鏡像的頻率。
9、rdbcompression 在進行鏡像備份時,是否進行壓縮
10、dbfilename 鏡像備份文件的文件名
11、Dir 數(shù)據(jù)庫鏡像備份的文件放置路徑
12、Slaveof 設置數(shù)據(jù)庫為其他數(shù)據(jù)庫的從數(shù)據(jù)庫
13、Masterauth 主數(shù)據(jù)庫連接需要的密碼驗證
14、Requriepass 設置 登陸時需要使用密碼
15、Maxclients 限制同時使用的客戶數(shù)量
16、Maxmemory 設置redis能夠使用的最大內存
17、Appendonly 開啟append only模式
18、Appendfsync 設置對appendonly.aof文件同步的頻率(對數(shù)據(jù)進行備份的第二種方式)
19、vm-enabled 是否開啟虛擬內存支持 (vm開頭的參數(shù)都是配置虛擬內存的)
20、vm-swap-file 設置虛擬內存的交換文件路徑
21、vm-max-memory 設置redis使用的最大物理內存大小
22、vm-page-size 設置虛擬內存的頁大小
23、vm-pages 設置交換文件的總的page數(shù)量
24、vm-max-threads 設置VM IO同時使用的線程數(shù)量
25、Glueoutputbuf 把小的輸出緩存存放在一起
26、hash-max-zipmap-entries 設置hash的臨界值
27、Activerehashing 重新hash
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Centos7下Redis3.2.8最新版本安裝教程
- CentOS6.5下Redis安裝與配置詳細步驟
- CentOS 7下安裝 redis 3.0.6并配置集群的過程詳解
- CentOS系統(tǒng)安裝Redis及Redis的PHP擴展詳解
- Redis3.2.11在centos9安裝與卸載過程詳解