Linux值Redis緩存的編譯安裝
通過(guò)wget方式直接在linux上下載Redis
[root@livecd root]#wget http://download.redis.io/releases/redis-3.2.3.tar.gz
解壓下載的redis-2.6.17.tar.gz 文件
[root@livecd root]#tar -zxvf redis-3.2.3.tar.gz
進(jìn)入解壓后的文件夾
[root@livecd root]#cd redis-3.2.3
編譯
[root@livecd redis-3.2.3]# make
測(cè)試是否正常編譯成功:
[root@livecd redis-3.2.3]# make test #正常情況下顯示各個(gè)模塊都安裝成功[ok]
安裝:
[root@livecd redis-3.2.3]# make install
在安裝redis成功后,你將可以在/usr/local/bin看到一個(gè)bin的目錄,里面包括了以下文件,當(dāng)然在解壓的安裝包目錄(即執(zhí)行make install的工作目錄)下的./src(本案例中/root/redis-3.2.3/src)目錄下也會(huì)生成下面的文件:(如果在編譯的時(shí)候指定安裝目錄make prefix=/usr/local/redis,那么下面文件同樣會(huì)出在/usr/local/redis/bin目錄)?
redis-benchmark??redis-check-aof??redis-check-dump(wyq:該文件在2.4.4版本生成,在3.2.3版本貌似改稱為redis-check-rdb)??redis-cli??redis-server
redis-server:Redis服務(wù)器的daemon啟動(dòng)程序
redis-cli:Redis命令行操作工具。也可以用telnet根據(jù)其純文本協(xié)議來(lái)操作
redis-benchmark:Redis性能測(cè)試工具,測(cè)試Redis在當(dāng)前系統(tǒng)下的讀寫性能
redis-check-aof:數(shù)據(jù)修復(fù)
redis-check-dump:檢查導(dǎo)出工具
運(yùn)行:
通過(guò)執(zhí)行src文件夾下的redis-server,可以啟動(dòng)redis服務(wù):
[root@livecd redis-3.2.3]# src/redis-server ./redis.conf #當(dāng)然也可以執(zhí)行/usr/local/bin/redis-server /root/redis-3.2.3/redis.conf來(lái)啟動(dòng)
5713:M 23 Aug 09:53:09.277 * Increased maximum number of open files to 10032 (it was originally set to 1024).
????????????????_._
???????????_.-``__ ''-._
??????_.-``????`.??`_.??''-._???????????Redis 3.2.3 (00000000/0) 64 bit
??.-`` .-```.??```\/????_.,_ ''-._
?(????'??????,???????.-`??| `,????)?????Running in standalone mode
?|`-._`-...-` __...-.``-._|'` _.-'|?????Port: 6379
?|????`-._???`._????/?????_.-'????|?????PID: 5713
??`-._????`-._??`-./??_.-'????_.-'
?|`-._`-._????`-.__.-'????_.-'_.-'|
?|????`-._`-._????????_.-'_.-'????|???????????http://redis.io
??`-._????`-._`-.__.-'_.-'????_.-'
?|`-._`-._????`-.__.-'????_.-'_.-'|
?|????`-._`-._????????_.-'_.-'????|
??`-._????`-._`-.__.-'_.-'????_.-'
??????`-._????`-.__.-'????_.-'
??????????`-._????????_.-'
??????????????`-.__.-'
5713:M 23 Aug 09:53:09.279 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
5713:M 23 Aug 09:53:09.279 # Server started, Redis version 3.2.3
5713:M 23 Aug 09:53:09.279 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix 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.
5713:M 23 Aug 09:53:09.279 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
5713:M 23 Aug 09:53:09.279 * The server is now ready to accept connections on port 6379
我們?cè)诘谝徊街虚_啟redis進(jìn)程后不要關(guān)閉該進(jìn)程,因?yàn)樯鲜鲞M(jìn)程是一個(gè)普通進(jìn)程,即如果關(guān)閉上述客戶端命令窗口或終止上述進(jìn)程,那么redis進(jìn)行會(huì)被關(guān)閉,為了redis可以持久執(zhí)行我們可以通過(guò)將該進(jìn)程改為守護(hù)進(jìn)程或者將其加工為一個(gè)服務(wù)的形式,后面我們將介紹。此處在不結(jié)束第一步的命令的前提下,我們重新打開一個(gè)與服務(wù)器的ssh通信,通過(guò)執(zhí)行src文件夾下的redis-cli, 可以訪問(wèn)redis服務(wù)。
[root@livecd redis-3.2.3]# src/redis-cli
127.0.0.1:6379> set foo wangyaqiang
OK
127.0.0.1:6379> get foo
"wangyaqiang"
127.0.0.1:6379> exit
[root@livecd redis-3.2.3]#
將redis做成一個(gè)守護(hù)進(jìn)程(參見(jiàn)本節(jié)點(diǎn)同級(jí)節(jié)點(diǎn)【redis做成守護(hù)進(jìn)程】)
將redis的命令所在目錄添加到系統(tǒng)環(huán)境變量$PATH,從而實(shí)現(xiàn)在任意目錄可以調(diào)用redis-server等命令(參見(jiàn)本節(jié)點(diǎn)同級(jí)節(jié)點(diǎn)【redis操作目錄添加到系統(tǒng)環(huán)境變量PATH】)
復(fù)制一份配置文件到/etc目錄,從而方便以后管理修改啟動(dòng)等。
[root@livecd redis-3.2.3]# cp ./redis.conf ?/etc/redis.conf
6ok啦,現(xiàn)在我們可以在任何目錄以下面的方式來(lái)啟動(dòng)或操作redis嘍!
[root@iZ25ja2kaemZ redis-3.2.3]# redis-server /etc/redis.conf
[root@iZ25ja2kaemZ redis-3.2.3]# ps axu|grep redis
root??????1070??0.0??0.7 133524??7544 ?????????Ssl??13:37???0:00 redis-server 127.0.0.1:6379
root??????1074??0.0??0.0 103252???836 pts/0????S+???13:37???0:00 grep redis
[root@iZ25ja2kaemZ redis-3.2.3]#
關(guān)閉redis服務(wù)
[root@iZ25ja2kaemZ redis-3.2.3]# redis-cli -p 6379 shutdown #如果不指定端口默認(rèn)端口為6379
如果有密碼,那么 [root@iZ25ja2kaemZ ~]#??redis-cli -p 6379 -a 123456789abc??shutdown
為了以后重啟服務(wù)器時(shí)候,希望該redis服務(wù)自動(dòng)啟動(dòng),那么我們可以將其做成一個(gè)服務(wù)(參見(jiàn)本節(jié)點(diǎn)同級(jí)節(jié)點(diǎn)【redis做成一個(gè)服務(wù)】))
測(cè)試用例:
/usr/local/bin/redis-server /root/redis-3.2.3/redis.conf ?#開啟
/ root/redis-3.2.3/src/redis-cli #使用客戶端鏈接服務(wù)
/root/redis-3.2.3/src/redis-server /root/redis-3.2.3/redis.conf ?#開啟
安裝過(guò)程可能出現(xiàn)的問(wèn)題:
1.CentOS6.5默認(rèn)沒(méi)有安裝gcc,因?yàn)槿绻褂迷创a安裝軟件包,必須用到該gcc模塊,這會(huì)導(dǎo)致我們無(wú)法make成功。出現(xiàn)如下錯(cuò)誤:
make: cc: Command not found make: *** [adlist.o] Error 127
使用yum安裝:
yum -y install gcc
2.make時(shí)報(bào)如下錯(cuò)誤:
[root@livecd redis-3.2.3]# make
cd src && make all
make[1]: Entering directory `/usr/local/redis/redis-3.2.3/src'
????CC adlist.o
In file included from adlist.c:34:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/usr/local/redis/redis-3.2.3/src'
make: *** [all] Error 2
原因是jemalloc重載了Linux下的ANSI C的malloc和free函數(shù)。解決辦法:make時(shí)添加參數(shù)。
make MALLOC=libc
3.make之后,會(huì)出現(xiàn)一句提示
Hint: To run 'make test' is a good idea ;)?
但是不測(cè)試,通常是可以使用的。若我們運(yùn)行make test ,會(huì)有如下提示
[devnote@devnote src]$ make test
You need tcl 8.5 or newer in order to run the Redis test
make: ***[test] Error_1
解決辦法是用yum安裝tcl8.5(或去tcl的官方網(wǎng)站http://www.tcl.tk/下載8.5版本,并參考官網(wǎng)介紹進(jìn)行安裝)
yum install tcl
————————————————
版權(quán)聲明:本文為CSDN博主「河北強(qiáng)商網(wǎng)絡(luò)科技有限公司」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yaqiang2017/article/details/117999266