下载
官网下载
安装
1. 将下载好的 redis-4.0.2.tar.gz 安装包传入 Linux 的 home 目录下:
2. 进入home 路径:
cd /home
3. 解压:
tar xzf redis-4.0.2.tar.gz
4. 进入解压出的文件夹:
cd redis-4.0.2
5. 执行:
make
如果报错,可能是缺少 gcc
cd src && make all
make[1]: 进入目录“/home/redis-4.0.2/src”
CC Makefile.dep
make[1]: 离开目录“/home/redis-4.0.2/src”
make[1]: 进入目录“/home/redis-4.0.2/src”
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
(cd ../deps && make distclean)
make[2]: 进入目录“/home/redis-4.0.2/deps”
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
make[2]: 离开目录“/home/redis-4.0.2/deps”
(rm -f .make-*)
echo STD=-std=c99 -pedantic -DREDIS_STATIC='' >> .make-settings
echo WARN=-Wall -W -Wno-missing-field-initializers >> .make-settings
echo OPT=-O2 >> .make-settings
echo MALLOC=jemalloc >> .make-settings
echo CFLAGS= >> .make-settings
echo LDFLAGS= >> .make-settings
echo REDIS_CFLAGS= >> .make-settings
echo REDIS_LDFLAGS= >> .make-settings
echo PREV_FINAL_CFLAGS=-std=c99 -pedantic -DREDIS_STATIC='' -Wall -W -Wno-missing-field-initializers -O2 -g -ggdb -I../deps/hiredis -I../deps/linenoise -I../deps/lua/src -DUSE_JEMALLOC -I../deps/jemalloc/include >> .make-settings
echo PREV_FINAL_LDFLAGS= -g -ggdb -rdynamic >> .make-settings
(cd ../deps && make hiredis linenoise lua jemalloc)
make[2]: 进入目录“/home/redis-4.0.2/deps”
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
(echo "" > .make-cflags)
(echo "" > .make-ldflags)
MAKE hiredis
cd hiredis && make static
make[3]: 进入目录“/home/redis-4.0.2/deps/hiredis”
gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
make[3]: gcc:命令未找到 #没有安装gcc,看【报错后执行1】
make[3]: *** [net.o] 错误 127
make[3]: 离开目录“/home/redis-4.0.2/deps/hiredis”
make[2]: *** [hiredis] 错误 2
make[2]: 离开目录“/home/redis-4.0.2/deps”
make[1]: [persist-settings] 错误 2 (忽略)
CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录“/home/redis-4.0.2/src”
make: *** [all] 错误 2
【报错后执行1】 安装gcc:
yum install gcc-c++ 安装完后:在 redis 目录下 make
然后报错
cd src && make all
make[1]: 进入目录“/home/redis-4.0.2/src”
CC Makefile.dep
make[1]: 离开目录“/home/redis-4.0.2/src”
make[1]: 进入目录“/home/redis-4.0.2/src”
CC adlist.o
In file included from adlist.c:34:0:
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录 #看【报错后执行2】
#include <jemalloc/jemalloc.h>
^
编译中断。
make[1]: *** [adlist.o] 错误 1
make[1]: 离开目录“/home/redis-4.0.2/src”
make: *** [all] 错误 2
【报错后执行2】 执行命令:
make MALLOC=libc
然后进入redis 下的src 目录,执行:
make install
可能会报的其他错误:
报错:zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory #输入 make distclean 然后再 make
报错:couldn't execute "tclsh8.5": no such file or directory #没有安装tcl 输入 yum install -y tcl
6. 接上,新增用户和组:
groupadd redis
useradd -c Redis Server -s /sbin/nologin -d /var/lib/redis -g redis -G root
useradd -c Redis Server -s /sbin/nologin -d /var/lib/redis -g redis -G root
reids参数解释:
-c 用户描述信息
-s 用户执行脚本,此处为安全考虑,redis用户是不允许远程登录,故使用/sbin/nologin
-d 用户home目录,此处无需在/home目录下创建redis子目录,故将其定位于/var/lib/redis空目录中
-G 扩展用户组,即表示此用户同时属于root用户组
启动
为了方便管理,将 redis 文件中的 redis.conf 配置文件和常用命令移动到统一文件夹中,这里常用命令都自动移动到了 /usr/local/bin目录中,所以这里直接把 redis-4.0.2目录下的 redis.conf 文件移动到了 /usr/local/bin 目录中:
1. 进入 redis-4.0.2
[root@localhost redis-4.0.2]#
mv redis.conf /usr/local/bin
2. 进入 /usr/local/bin 中
cd /usr/local/bin
3. 执行命令
./redis-server ./redis.conf
奇迹出现
5688:C 11 Dec 17:51:24.530 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
5688:C 11 Dec 17:51:24.530 # Redis version=4.0.2, bits=64, commit=00000000, modified=0, pid=5688, just started
5688:C 11 Dec 17:51:24.530 # Configuration loaded
5688:M 11 Dec 17:51:24.550 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 4.0.2 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 5688
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
5688:M 11 Dec 17:51:24.560 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
5688:M 11 Dec 17:51:24.560 # Server initialized
5688:M 11 Dec 17:51:24.560 # 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.
5688:M 11 Dec 17:51:24.561 * Ready to accept connections
启动成功。但此时是前台运行的,我们还需要让redis服务后台运行。
4. 按 Ctrl + C 退出 redis
5. 编辑 redis.conf:
cd
/usr/local/bin
vi redis.conf
按
i 进入编辑模式
################################# GENERAL #####################################
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize no #改为 yes
按 Esc 退出编辑模式,输入
:wq 退出并保存。
6.再次启动redis:
在当前目录下,执行
./redis-server ./redis.conf
执行
netstat -tunpl | grep 6379 ,看到redis 占用了6379 端口(redis 默认端口为 6379)。
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 11697/./redis-serve
6.启动 redis 客户端:
usr/local/bin 目录下,执行
./redis-cli
[root@localhost bin]# ./redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
启动成功。