1、解压Redis源码包
tar -zxvf redis-6.0.2.tar.gz -C /var/local/redis
2、安装gcc编译器
yum install -y gcc
3、进入/var/local/redis
cd /var/local/redis/redis-6.0.2
make && make install
#出现一下错误,说明是GCC版本太低,
server.c:5151:94: error: ‘struct redisServer’ has no member named ‘unixsocket’
serverLog(LL_NOTICE,“The server is now ready to accept connections at %s”, server.unixsocket);
^
server.c:5152:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’
if (server.supervised_mode == SUPERVISED_SYSTEMD) {
^
server.c:5153:24: error: ‘struct redisServer’ has no member named ‘masterhost’
if (!server.masterhost) {
^
server.c:5166:15: error: ‘struct redisServer’ has no member named ‘maxmemory’
if (server.maxmemory > 0 && server.maxmemory < 10241024) {
^
server.c:5166:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
if (server.maxmemory > 0 && server.maxmemory < 10241024) {
^
server.c:5167:176: error: ‘struct redisServer’ has no member named ‘maxmemory’
serverLog(LL_WARNING,“WARNING: You specified a maxmemory value that is less than 1MB (current value is %llu bytes). Are you sure this is what you really want?”, server.maxmemory);
^
server.c:5170:31: error: ‘struct redisServer’ has no member named ‘server_cpulist’
redisSetCpuAffinity(server.server_cpulist);
-----------------------------------
server.c:5166:39: error: ‘struct redisServer’ has no member named ‘maxmemory’
https://blog.51cto.com/u_10176086/5951651
解决办法如下:
gcc -v #查看版本,升级到5.3以上版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash #注意:scl命令启用只是临时的,退出xshell或者重启就会恢复到原来的gcc版本。
#如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
#删除掉之前的redis解压包
cd /var/local/redis/
rm -rf redis-6.0.2
tar -zxvf redis-6.0.2.tar.gz
cd /var/local/redis/redis-6.0.2
make && make install
4、修改配置文件
在redis-6.0.2目录下redis.conf文件中
配置项 | 含义以及默认值 |
---|---|
bind | 绑定redis运行的服务器的所在IP,如果需要外界访问就注销该项.默认127.0.01 |
protected-mode | 默认yes,表示是受保护状态,只有本机可以访问。no表示外部可以访问。 |
port | 端口号 默认6379 |
daemonize | 默认no 表示不后台运行。需要后台运行redis服务,该项置为yes |
pidfile | 运行时产生的进程文件目录/var/run/redis_6379.pid |
logfile | 运行时产生的日志信息默认到/dev/null |
loglevel | 日志级别(debug、verbose、notice、waring) |
databases | 数据库数 默认16 |
save 900 1 save 300 10 save 60 10000 | 内存中的数据落盘机制,默认值900s中有一个key被读或写,300S内有10个key被读或写,60s内10000被读或者写 |
dbfilename | 默认值dump.rdb 落盘数据的文件名称 |
dir | 默认值 ./ 落盘数据的位置 |
appendonly | 默认值no 以追加的日志的方式落盘 |
appendfilename | 默认值appendonly.aof |
配置一下内容
protected-mode no
daemonize yes
4、redis运行
cd /var/local/redis/redis-6.0.2
./src/redis-server ./redis.conf
[root@hecs-202792 redis-6.0.2]# ./src/redis-server redis.conf
8207:C 02 Aug 2023 16:19:48.912 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
8207:C 02 Aug 2023 16:19:48.912 # Redis version=6.0.2, bits=64, commit=00000000, modified=0, pid=8207, just started
8207:C 02 Aug 2023 16:19:48.912 # Configuration loaded
验证
ps -ef | grep redis #查看能否出现redis相关进程