redis安裝及問題解決

漠效發表於2018-03-03

前言

這篇文是由於我在redis安裝時,遇到很多問題,而進行總結的對redis幾種常見問題的解決方法,希望對你找到這篇文的你有一些幫助。

環境

centos7系統

redis要用gcc來編譯redis的原始檔的
yum install gcc-c++

一、安裝Redis

1.下載redis穩定的安裝包
wget http://download.redis.io/releases/redis-4.0.1.tar.gz

2.解壓redis
tar xzf redis-4.0.1.tar.gz

3.切換到該目錄下
cd redis-4.0.1

4.make命令編譯
make

我在這一步的時候,,經網上查的資料,發現無需擔心,往下執行即可。

5.安裝tcl
yum -y install tcl

6.進入產生的目錄
cd src

7.執行make test測試是否可以安裝
make test

不報錯往下執行,即可

8.確定安裝redis位置
make PREFIX=/usr/local/redis install

安裝成功如下:

Hint: It’s a good idea to run ‘make test’ ;)

INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install

9.把解壓的redis路徑下的redis.conf檔案拷貝到安裝路徑下
cd /root/redis-4.0.1/
cp redis.conf /usr/local/redis
ll /usr/local/redis
drwxr-xr-x 2 root root 134 3月 3 19:27 bin
-rw-r–r– 1 root root 57764 3月 3 19:31 redis.conf

10.啟動redis
cd /usr/local/redis/bin
./redis-server

11.後臺啟動redis服務
直接執行Redis-server 啟動的Redis服務,是在前臺直接執行的;如果Lunix關閉當前會話,則Redis服務也隨即關閉。正常情況下,啟動Redis服務需要從後臺啟動,要指定啟動配置檔案。

要進行redis.conf檔案的修改:
vim /usr/local/redis/redis.conf
daemonize no 改成 daemonize yes 表明需要在後臺執行

載入配置檔案
(env364) [root@www redis]# pwd
/usr/local/redis

./bin/redis-server ./redis.conf

出現以下為成功
(env364) [root@www redis]# ./bin/redis-server ./redis.conf
26935:C 03 Mar 20:29:04.318 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
26935:C 03 Mar 20:29:04.319 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=26935, just started
26935:C 03 Mar 20:29:04.319 # Configuration loaded

(env364) [root@www bin]# netstat -tunpl |grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 26936/./bin/redis-s

二、redis啟動常見問題及解決

1.如報此錯:WARNING you have Transparent Huge Pages

解決方案:
以root身份輸入echo never > /sys/kernel/mm/transparent_hugepage/enabled
(env364) [root@www redis]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

如果要永久的話,需要寫入/etc/rc.local,新增如下
echo never > /sys/kernel/mm/transparent_hugepage/enabled

2.如報此錯: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.

解決方案:
配置下面的核心引數,否則Redis指令碼在重啟或停止redis時,將會報錯,並且不能自動在停止服務前同步資料到磁碟上/etc/sysctl.conf加上
vim /etc/sysctl.conf
vm.overcommit_memory = 1
sysctl -p

echo 1 > /proc/sys/vm/overcommit_memory

3.如報此錯:WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

解決方案:
echo 511 > /proc/sys/net/core/somaxconn

相關文章