1、定义下载目录以及下载并解压redis-6.0.10
进去下载目录:
cd /usr/local
下载redis-6.0.10最新稳定版本:
wget https://download.redis.io/releases/redis-6.0.10.tar.gz
解压redis-6.0.10文件
tar zxvf redis-6.0.10.tar.gz
运行效果:
[root@xuhangCentos7 /]# cd /usr/local/ [root@xuhangCentos7 local]#
wget https://download.redis.io/releases/redis-6.0.10.tar.gz
–2021-02-05 08:50:37-- https://download.redis.io/releases/redis-6.0.10.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|:443… connected.
HTTP request sent, awaiting response… 200 OK Length: 2271970 (2.2M)
[application/octet-stream] Saving to: ‘redis-6.0.10.tar.gz’100%[===============================================================================================================================>] 2,271,970 2.10MB/s in 1.0s
2021-02-05 08:50:39 (2.10 MB/s) - ‘redis-6.0.10.tar.gz’ saved
[2271970/2271970][root@xuhangCentos7 local]# tar zxvf redis-6.0.10.tar.gz
2、编译并安装redis
cd /usr//local/redis-6.0.10
make
执行完make命令 此时会出错:
make[1]: *** [server.o] Error 1 make[1]: Leaving directory
`/usr/local/redis-6.0.10/src’ make: *** [all] Error 2
[root@xuhangCentos7 redis-6.0.10]#
3、安装gcc
yum -y install gcc
yum -y install gcc-c++
4、继续执行make编译
make
还是报错:
make[1]: *** [server.o] Error 1 make[1]: Leaving directory
`/usr/local/redis-6.0.10/src’ make: *** [all] Error 2
[root@xuhangCentos7 redis-6.0.10]#
稳住,莫慌莫慌,查看相关资源后发现CentOS7默认安装的是4.8.5,而redis6.0只支持5.3以上版本,原来是版本不支持,升级版本、升级
# 查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5
gcc -v
# 升级gcc到5.3及以上,如下:
升级到gcc 9.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命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 9.3的话:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
这样退出shell重新打开就是新版的gcc了
以下其他版本同理,修改devtoolset版本号即可。
5、gcc终于升级好了,这时千万别忘记要进行版本的切换,升级了新版本肯定是使用新版本喽
我还是很建议进行永久切换这样,别临时切换完成之后重新连接服务器gcc自己又降回去了,就很麻烦啊啊啊
临时切换:scl enable devtoolset-9 bash
永久切换:echo “source /opt/rh/devtoolset-9/enable” >> /etc/profile
切换完成之后重新连接服务器生效,查看gcc版本
gcc -v
6、升级完之后 继续执行make命令继续编译
make
运行结果如下, 说明编译成功:
CC setcpuaffinity.o
LINK redis-server
INSTALL redis-sentinel
CC redis-cli.o
LINK redis-cli
CC redis-benchmark.o
LINK redis-benchmark
INSTALL redis-check-rdb
INSTALL redis-check-aof
Hint: It's a good idea to run 'make test' ;)
make[1]: Leaving directory `/usr/local/redis-6.0.10/src'
[root@xuhangCentos7 redis-6.0.10]#
7、make命令执行完成编译后
注意:make命令执行完成编译后,会在 cd /usr/local/redis-6.0.10/src/
目录下生成6个可执行文件
分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-sentinel
8、译生成的可执行文件拷贝到/usr/local/bin目录下(这个后期可以直接使用命令
cd /usr/local/redis-6.0.10/src/
cp {redis-server,redis-cli,redis-benchmark,redis-check-aof,redis-check-rdb,redis-sentinel} /usr/local/bin
9、进入redis目录执行安装命令make install
cd /usr/local/redis-6.0.10/src/
make install
运行效果:
[root@xuhangCentos7 src]# cd /usr/local/redis-6.0.10/src/
[root@xuhangCentos7 src]# make installHint: It’s a good idea to run ‘make test’ 😉
INSTALL install INSTALL install INSTALL install INSTALL install INSTALL install [root@xuhangCentos7 src]#
10、启动redis的三种方式
10.1第一种方式:用命令行直接启动
先切换到redis src目录下
cd /usr/local/redis-6.0.10/src
当前目录下启动命令:
./redis-server
运行效果:
如上图:redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。
按 ctrl + c可以关闭窗口。
10.2第二种方式:以后台进程方式启动redis
这里建议你进行端口的修改,redis默认端口容易受到黑客攻击,进行挖矿行动,so,为了服务器的安全,还是修改端口号
可以把redis.conf 下载到本地进行修改简单方便 1、更改默认端口 由port 6379 改为 你自己定义的端口
2、以后台进程方式启动
修改daemonize no 为daemonize yes
找到 protected-mode yes 将其改为 protected-mode no
3、设置redis远程连接(1)、先放行你设置的端口号
(2)、注释掉bind 127.0.0.1
(3)、设置redis连接密码:在requirepass foobard 改为 requirepass 123456
123456为设置的密码,这个密码尽量设置复杂些
4、启动redis,若你的redis已经启动,则先关闭,按以下方式进行关闭(关闭默认端口)
停止redis(关闭默认端口):
./redis-cli shutdown
查找进程号并杀死进程:
ps -aux|grep redis
kill -9 21019
[root@xuhangCentos7 src]# ps -ef | grep redis
root 21019 1 0 11:57 ? 00:00:03 /usr/local/bin/redis-server *:6379
root 21088 20167 0 12:26 pts/0 00:00:00 grep --color=auto redis
[root@xuhangCentos7 src]# kill -9 21019
5、redis的启动 指定配置文件启动,进redis的src目录下,输入命令
cd /usr/local/redis-6.0.10/src/
./redis-server /usr/local/redis-6.0.10/redis.conf
运行效果:
[root@xuhangCentos7 src]# ./redis-server /usr/local/redis-6.0.10/redis.conf
[root@xuhangCentos7 src]# ps -aux|grep redis
root 21122 0.1 0.7 162384 7820 ? Ssl 12:44 0:00 ./redis-server *:6379
root 21128 0.0 0.0 112816 680 pts/0 R+ 12:44 0:00 grep --color=auto redis
[root@xuhangCentos7 src]#
这种启动方式,如果需要关闭必须kill掉redis 的进程。
10.3、写redis启动脚本设置开机自启
添加开机启动服务
vim /etc/systemd/system/redis-server.service
添加启动配置
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=//usr/local/redis-6.0.10/src/redis-server /usr/local/redis-6.0.10/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
执行以下命令使刚刚编写的service生效
systemctl daemon-reload
设置开机启动
# 设定开机启动
systemctl enable redis-server
# 启动服务
systemctl start redis-server
# 停止服务
systemctl stop redis-server
# 重启服务
systemctl restart redis-server
# 取消开机启动
systemctl disable redis-server
# 查看服务状态
systemctl status redis-server
拓展内容:
redis.conf相关配置
daemonize #如果需要在后台运行,把该项改为yes
pidfile #配置多个pid的地址 默认在/var/run/redis.pid
bind #绑定ip,设置后只接受来自该ip的请求
port #监听端口,默认是6379
loglevel #分为4个等级:debug verbose notice warning
logfile #用于配置log文件地址
databases #设置数据库个数,默认使用的数据库为0
save #设置redis进行数据库镜像的频率。
rdbcompression #在进行镜像备份时,是否进行压缩
dbfilename #镜像备份文件的文件名
Dir #数据库镜像备份的文件放置路径
Slaveof #设置数据库为其他数据库的从数据库
Masterauth #主数据库连接需要的密码验证
Requriepass #设置登陆时需要使用密码
Maxclients #限制同时使用的客户数量
Maxmemory #设置redis能够使用的最大内存
Appendonly #开启append only模式
Appendfsync #设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)
vm-enabled #是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)
vm-swap-file #设置虚拟内存的交换文件路径
vm-max-memory #设置redis使用的最大物理内存大小
vm-page-size #设置虚拟内存的页大小
vm-pages #设置交换文件的总的page数量
vm-max-threads #设置VM IO同时使用的线程数量
Glueoutputbuf #把小的输出缓存存放在一起
hash-max-zipmap-entries #设置hash的临界值
Activerehashing #重新hash