centos 7 安装 redis 7.0

1,安装 gcc

yum install gcc-c++

升级gcc编译器版本
默认下载的gcc编译器的版本一般是4.8.5,但是redis安装要求的版本比较高,所以我们需要升级一下当前的gcc版本信息

yum install centos-release-scl scl-utils-build
yum install -y devtoolset-9-toolchain
scl enable devtoolset-9 bash

需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本
配置长期使用gcc9,添加环境变量

echo -e "\nsource /opt/rh/devtoolset-9/enable" >>/etc/profile
source /etc/profile 再次检查当前gcc的版本信息

[root@aliyuan-ops-01 devops]# gcc --version
gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

2,下载redis 7.0

[root@aliyuan-ops-01 devops]# wget http://download.redis.io/releases/redis-7.0.0.tar.gz
--2022-06-01 21:56:44-- http://download.redis.io/releases/redis-7.0.0.tar.gz
Resolving download.redis.io (download.redis.io)... 45.60.125.1
Connecting to download.redis.io (download.redis.io)|45.60.125.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2943054 (2.8M) [application/octet-stream]
Saving to: ‘redis-7.0.0.tar.gz’

100%[==========================================================================================================================>] 2,943,054 2.06MB/s in 1.4s

2022-06-01 21:56:47 (2.06 MB/s) - ‘redis-7.0.0.tar.gz’ saved [2943054/2943054]

解压

tar -zxvf redis-7.0.0.tar.gz -C /usr/local/

[root@aliyuan-ops-01 local]# cd redis-7.0.0/
[root@aliyuan-ops-01 redis-7.0.0]# pwd
/usr/local/redis-7.0.0
[root@aliyuan-ops-01 redis-7.0.0]# ls
00-RELEASENOTES CONDUCT COPYING INSTALL MANIFESTO redis.conf runtest-cluster runtest-sentinel sentinel.conf tests utils
BUGS CONTRIBUTING deps Makefile README.md runtest runtest-moduleapi SECURITY.md src TLS.md

3、安装Redis
编译安装

[root@aliyuan-ops-01 redis-7.0.0]# make && make install 
[root@aliyuan-ops-01 redis-7.0.0]# cd src/
[root@aliyuan-ops-01 src]# ./redis-server
2631:C 01 Jun 2022 22:11:04.438 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2631:C 01 Jun 2022 22:11:04.438 # Redis version=7.0.0, bits=64, commit=00000000, modified=0, pid=2631, just started
2631:C 01 Jun 2022 22:11:04.438 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
2631:M 01 Jun 2022 22:11:04.439 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 7.0.0 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 2631
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'

2631:M 01 Jun 2022 22:11:04.439 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
2631:M 01 Jun 2022 22:11:04.439 # Server initialized
2631:M 01 Jun 2022 22:11:04.439 # 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.
2631:M 01 Jun 2022 22:11:04.440 * The AOF directory appendonlydir doesn't exist
2631:M 01 Jun 2022 22:11:04.440 * Ready to accept connections

redis7.0 已经安装成功,运行版本是7.0.0,默认端口号为6379

4,配置环境
在redis-7.0.0目录下面创建配置conf文件夹和data文件夹,先复制一份redis.conf到conf文件夹下面

[root@aliyuan-ops-01 redis-7.0.0]# ll
total 260
-rw-rw-r-- 1 root root 27744 Apr 27 21:32 00-RELEASENOTES
-rw-rw-r-- 1 root root 51 Apr 27 21:32 BUGS
-rw-rw-r-- 1 root root 5026 Apr 27 21:32 CONDUCT
-rw-rw-r-- 1 root root 2634 Apr 27 21:32 CONTRIBUTING
-rw-rw-r-- 1 root root 1487 Apr 27 21:32 COPYING
drwxrwxr-x 7 root root 4096 Jun 1 22:08 deps
-rw-rw-r-- 1 root root 11 Apr 27 21:32 INSTALL
-rw-rw-r-- 1 root root 151 Apr 27 21:32 Makefile
-rw-rw-r-- 1 root root 6888 Apr 27 21:32 MANIFESTO
-rw-rw-r-- 1 root root 22435 Apr 27 21:32 README.md
-rw-rw-r-- 1 root root 106547 Apr 27 21:32 redis.conf
-rwxrwxr-x 1 root root 279 Apr 27 21:32 runtest
-rwxrwxr-x 1 root root 283 Apr 27 21:32 runtest-cluster
-rwxrwxr-x 1 root root 1578 Apr 27 21:32 runtest-moduleapi
-rwxrwxr-x 1 root root 285 Apr 27 21:32 runtest-sentinel
-rw-rw-r-- 1 root root 1695 Apr 27 21:32 SECURITY.md
-rw-rw-r-- 1 root root 13924 Apr 27 21:32 sentinel.conf
drwxrwxr-x 4 root root 12288 Jun 1 22:14 src
drwxrwxr-x 11 root root 4096 Apr 27 21:32 tests
-rw-rw-r-- 1 root root 3055 Apr 27 21:32 TLS.md
drwxrwxr-x 8 root root 4096 Apr 27 21:32 utils
[root@aliyuan-ops-01 redis-7.0.0]# mkdir conf
[root@aliyuan-ops-01 redis-7.0.0]# mkdir data
[root@aliyuan-ops-01 redis-7.0.0]# cp -r redis.conf conf/
[root@aliyuan-ops-01 redis-7.0.0]# cd conf/
[root@aliyuan-ops-01 conf]# ls
redis.conf

修改配置文件,并设置启动模式为后台模式,绑定ip修改为0.0.0.0,支持远程登录。

默认绑定
bind 0.0.0.0 -::1
监听端口号
port 6379
是否守护进程,改成yes以后会以后台运行模式启动
daemonize no
日志文件名称
logfile “redis-6379.log”
指定data存放路径
dir /usr/local/redis-7.0.0/data
配置文件以后查看redis的运行状态,OK,运行成功了。

给日志目录权限
cd /usr/local/redis-7.0.0/data
chown redis:redis redis-6379.log

[root@aliyuan-ops-01 redis-7.0.0]# redis-server conf/redis.conf 
[root@aliyuan-ops-01 ~]# ps -ef | grep redis
root 2655 30129 0 22:23 pts/0 00:00:00 redis-server 127.0.0.1:6379
root 2682 2662 0 22:24 pts/1 00:00:00 grep --color=auto redis
[root@aliyuan-ops-01 redis-7.0.0]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

5,设置开机启动
编辑开机启动脚本

cat /lib/systemd/system/redis.service

[Unit]
Description=Redis
After=network.target

[Service]
#Type=forking
ExecStart=/usr/local/redis-7.0.0/redis-server /usr/local/redis-7.0.0/conf/redis.conf
ExecReload=/usr/local/redis-7.0.0/redis-server -s reload
ExecStop=/usr/local/redis-7.0.0/redis-server -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

加载

systemctl daemon-reload

启动

systemctl start redis.service

查看状态

[root@aliyuan-ops-01 system]# systemctl status redis.service
● redis.service - Redis
Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2022-06-01 23:08:22 CST; 3min 26s ago
Main PID: 3197 (redis-server)
Tasks: 5
Memory: 1.7M
CGroup: /system.slice/redis.service
└─3197 /usr/local/redis-7.0.0/src/redis-server 127.0.0.1:6379

Jun 01 23:08:22 aliyuan-ops-01 systemd[1]: Started Redis.


[root@aliyuan-ops-01 system]# ps -ef | grep redis
root 3197 1 0 23:08 ? 00:00:00 /usr/local/redis-7.0.0/src/redis-server 127.0.0.1:6379
root 3215 2830 0 23:12 pts/0 00:00:00 grep --color=auto redis

[root@aliyuan-ops-01 system]# netstat -nultp | grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 3197/redis-server 1
tcp6 0 0 ::1:6379 :::* LISTEN 3197/redis-server 1