Linux 环境下安装 Redis

来源:互联网 发布:巅峰网络传奇 编辑:程序博客网 时间:2024/05/17 09:44

下载

官网下载

安装

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 allmake[1]: 进入目录“/home/redis-4.0.2/src”    CC Makefile.depmake[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-settingsecho WARN=-Wall -W -Wno-missing-field-initializers >> .make-settingsecho OPT=-O2 >> .make-settingsecho MALLOC=jemalloc >> .make-settingsecho CFLAGS= >> .make-settingsecho LDFLAGS= >> .make-settingsecho REDIS_CFLAGS= >> .make-settingsecho REDIS_LDFLAGS= >> .make-settingsecho 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-settingsecho 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 hirediscd hiredis && make staticmake[3]: 进入目录“/home/redis-4.0.2/deps/hiredis”gcc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.cmake[3]: gcc:命令未找到 #没有安装gcc,看【报错后执行1】make[3]: *** [net.o] 错误 127make[3]: 离开目录“/home/redis-4.0.2/deps/hiredis”make[2]: *** [hiredis] 错误 2make[2]: 离开目录“/home/redis-4.0.2/deps”make[1]: [persist-settings] 错误 2 (忽略)    CC adlist.o/bin/sh: cc: 未找到命令make[1]: *** [adlist.o] 错误 127make[1]: 离开目录“/home/redis-4.0.2/src”make: *** [all] 错误 2
【报错后执行1】 安装gcc: yum install gcc-c++   安装完后:在 redis 目录下 make

然后报错
cd src && make allmake[1]: 进入目录“/home/redis-4.0.2/src”    CC Makefile.depmake[1]: 离开目录“/home/redis-4.0.2/src”make[1]: 进入目录“/home/redis-4.0.2/src”    CC adlist.oIn file included from adlist.c:34:0:zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录  #看【报错后执行2】 #include <jemalloc/jemalloc.h>                               ^编译中断。make[1]: *** [adlist.o] 错误 1make[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

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 oO0OoO0OoO0Oo5688:C 11 Dec 17:51:24.530 # Redis version=4.0.2, bits=64, commit=00000000, modified=0, pid=5688, just started5688:C 11 Dec 17:51:24.530 # Configuration loaded5688: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 initialized5688: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-cli127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379> 
启动成功。

原创粉丝点击