Linux安装redis和部署(超全面,你碰到的坑都有)

第一步:下载安装包
访问https://redis.io/download 到官网进行下载。我这里是下载的5.0.7版本
注意:centos7默认的gcc版本为4.8.5,安装Redis6.0需要将gcc版本升级到5.3以上
第二步:安装

1.通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作
,我这边是拷贝到/opt目录下
在这里插入图片描述
进入opt目录然后执行解压操作

tar -zxf redis-4.0.9.tar.gz

在这里插入图片描述
2.进入解压文件目录使用make对解压的Redis文件进行编译

 make MALLOC=libc

在这里插入图片描述
编译完成之后,可以看到解压文件redis-5.0.7 中会有对应的src、conf等文件夹
在这里插入图片描述
3.编译成功后,进入src文件夹,执行make install进行Redis安装。

make install

一般安装很快的,界面如下:

在这里插入图片描述
第三步:部署

1.为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中
1)、创建bin和etc文件

如图示:
在这里插入图片描述

2)、回到刚刚安装目录,找到redis.conf,将其复制移动到 /opt/redis-5.0.7/etc 下
执行命令如下:

mv redis.conf /opt/redis-5.0.7/etc
在这里插入图片描述

进入src目录,移动mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server到/usr/local/redis/bin/
执行命令 :mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server /opt/redis-5.0.7/bin/
在这里插入图片描述

依次查看移动后文件
2、执行redis-server 启动redis
在这里插入图片描述

碰到的问题:
1.解压执行make命令,出现了如下报错信息:

make[1]: *** [server.o] Error 1
make[1]: Leaving directory `/root/redis-6.0.1/src'
make: *** [install] Error 2

出现这个问题需要先确认GCC的版本,命令如下:

gcc -v

在这里插入图片描述
发现CentOS7默认的gcc版本为4.8.5,安装Redis6.0需要将gcc版本升级到5.3以上,则升级gcc命令如下:

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
 
#临时修改gcc版本
scl enable devtoolset-9 bash
#永久修改gcc版本
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

升级版本之后再执行则成功编译。
2.编译出错

make[3]: 进入目录“/usr/local/redis-3.2.8/deps/hiredis”  
gcc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c  
make[3]: gcc:命令未找到  
make[3]: *** [net.o] 错误 127  
make[3]: 离开目录“/usr/local/redis-3.2.8/deps/hiredis”  
make[2]: *** [hiredis] 错误 2  
make[2]: 离开目录“/usr/local/redis-3.2.8/deps”  
make[1]: [persist-settings] 错误 2 (忽略)  
    CC adlist.o  
/bin/sh: cc: 未找到命令  
make[1]: *** [adlist.o] 错误 127  
make[1]: 离开目录“/usr/local/redis-3.2.8/src”  
make: *** [all] 错误 2  

提示gcc命令未找到,这是因为redis没有安装gcc编译器没安装
这时候只要安装编译器即可

yum install -y gcc g++ gcc-c++ make

编译器安装完成之后再redis-5.0.7目录下执行make命令

[root@bogon redis-3.2.8]# make  
cd src && make all  
make[1]: 进入目录“/usr/local/redis-3.2.8/src”  
    CC adlist.o  
In file included from adlist.c:34:0:  
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录  
 #include <jemalloc/jemalloc.h>  
                               ^  
编译中断。  
make[1]: *** [adlist.o] 错误 1  
make[1]: 离开目录“/usr/local/redis-3.2.8/src”  
make: *** [all] 错误 2  

又出现错误,上网查了之后说是
原因分析
在README 有这个一段话。

Allocator    
---------    
   
Selecting a non-default memory allocator when building Redis is done by setting    
the `MALLOC` environment variable. Redis is compiled and linked against libc    
malloc by default, with the exception of jemalloc being the default on Linux    
systems. This default was picked because jemalloc has proven to have fewer    
fragmentation problems than libc malloc.    
   
To force compiling against libc malloc, use:    
   
    % make MALLOC=libc    
   
To compile against jemalloc on Mac OS X systems, use:    
   
    % make MALLOC=jemalloc  
  
说关于分配器allocator, 如果有MALLOC  这个 环境变量, 会有用这个环境变量的 去建立Redis。  
  
而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。  
  
但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数。  

我应该就是这个问题

没有jemalloc 而只有 libc 当然 make 出错。

这时候在编译过程时增加一个参数

make MALLOC=libc 

redis.conf 配置解析(设置红色的基本就可以自己用了,bind配置0.0.0.0后要在/etc/sysconfig/iptables配置相应的端口):
daemonize:如需要在后台运行,把该项的值改为yes

pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址

bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
(设置0.0.0.0 则改为用iptables来控制访问权限)

port:监听端口,默认为6379

timeout:设置客户端连接时的超时时间,单位为秒

loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice

logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上

database:设置数据库的个数,默认使用的数据库是0

save:设置redis进行数据库镜像的频率

rdbcompression:在进行镜像备份时,是否进行压缩

dbfilename:镜像备份文件的文件名

dir:数据库镜像备份的文件放置的路径

slaveof:设置该数据库为其他数据库的从数据库

masterauth:当主数据库连接需要密码验证时,在这里设定

requirepass:设置客户端连接后进行任何其他指定前需要使用的密码

maxclients:限制同时连接的客户端数量

maxmemory:设置redis能够使用的最大内存

appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态

appendfsync:设置appendonly.aof文件进行同步的频率

vm_enabled:是否开启虚拟内存支持

vm_swap_file:设置虚拟内存的交换文件的路径

vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0

vm_page_size:设置虚拟内存页的大小

vm_pages:设置交换文件的总的page数量

vm_max_thrrads:设置vm IO同时使用的线程数量

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值