Redis7.X单机环境源码安装指南


前言

Redis系列的第一篇博客,先从安装部署开始,这里我选择的是最新的稳定版本Redis 7.0.9 Released


一、官方文档

官网地址:https://redis.io/docs/getting-started/installation/install-redis-from-source/

另外,安装过程中也可以查看安装包下的README.md文件。
在这里插入图片描述
Tip:
学习一门新的技术,首选推荐查看官方文档。也许不是最详细、最简单易懂的,但一定是最全面、最精准的。

二、环境说明

  • CentOS 7.X
  • Redis 7.0.X

三、源码安装

官网给我们提供了4种安装方式,这里第4种方式:基于源码安装 Install Redis from Source
在这里插入图片描述

1.基本步骤

代码如下(示例):

//一般用户自行安装的软件都放在/usr/local/目录下
cd /usr/local/

//下载最新的稳定版本
wget https://download.redis.io/redis-stable.tar.gz

//解压
tar -xzvf redis-stable.tar.gz
cd redis-stable

//编译,需要gcc编译器
make

//测试:官方建议操作,但比较耗时,可以跳过,需要tcl 8.5
//make test

//安装服务
make install

//启动redis服务
redis-server

make install说明:
make install命令会默认将服务安装到/usr/local/redis-stable/src//usr/local/bin/目录下。
在这里插入图片描述
如果希望重新指定安装目录,可以适用PREFIX参数:
在这里插入图片描述

redis-server服务启动成功:在这里插入图片描述

2.异常记录

1)make编译异常:make[3]: cc:命令未找到

在这里插入图片描述
解决方案:
原因是CentOS7虚拟机系统中缺少gcc,因此只要安装好gcc即可

yum -y install gcc

2)make编译异常:zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录

在这里插入图片描述解决方案:
由于解压的时候,没有事先安装gcc编译器,导致初次make已经产生了很多垃圾问题。
这时需要删除之前的编译文件,重新执行make编译操作。

cd /usr/local/
rm -fr redis-stable
tar -xzvf redis-stable.tar.gz
cd redis-stable
make

也可以通过make distclean命令,清空之前执行make编译生成的缓存文件,然后重新编译:

make distclean
make

3)make test异常:You need tcl 8.5 or newer in order to run the Redis test

在这里插入图片描述
解决方案:

yum install -y tcl-devel

也可以通过源码安装,但是下载速度很慢。

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar xzvf tcl8.6.1-src.tar.gz  
cd  /usr/local/tcl8.6.1/unix/
./configure
make
make install

测试通过:
在这里插入图片描述

3.测试服务

打开一个新的连接窗口,使用redis-cli测试redis服务

[root@localhost ~]# cd /usr/local/
[root@localhost local]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set laowan 666
OK
127.0.0.1:6379> get laowan
"666"
127.0.0.1:6379> incr mycounter
(integer) 1
127.0.0.1:6379> incr mycounter
(integer) 2
127.0.0.1:6379> exit

4.基本配置

这里我直接修改的redis目录下默认的配置文件redis.conf,大家也可以复制新的配置文件后再属性编辑:

cd /usr/local/redis-stable
vi redis.conf 
# 设置redis服务监听的实例,只有绑定IP的服务器才能访问redis服务,这里设置为全部开放,可以改为自己需要访问redis服务器的具体IP
bind * -::*

#保护模式,默认开启,此时远程服务器需要密码才能访问redis服务
protected-mode yes

#守护进程启动,也就是后台启动,会将进程pid写入/var/run/redis.pid文件中,systemd下无效
daemonize yes
#配置pid文件的保存地址
pidfile /var/run/redis_6379.pid

#日志等级
loglevel notice
#日志文件,默认/dev/null
logfile ""

#认证配置
#redis7中推荐采用acl认证
#aclfile /etc/redis/users.acl
#密码认证
requirepass 123456

#设置最大内存,避免Redis使用的内存达到系统限制时会因内存不足而崩溃
maxmemory 1g
#过期淘汰策略,默认是noeviction不淘汰,这里设置为淘汰最不经常使用的过期key
maxmemory-policy volatile-lfu

5.其他推荐配置

可以发现,在redis的启动日志中会出现一些警告⚠️信息,尽量根据提示去进行优化。
在这里插入图片描述

  • TCP积压backlog设置,表示socket监听(listen)的backlog上限,backlog就是socket的监听队列,当一个请求(request)尚未被处理或建立时,就会进入backlog,默认值/proc/sys/net/core/somaxconn为128,太小了,需要加大。
  • 开启内存过量使用:添加vm.overcommit_memory = 1到/etc/sysctl.conf,执行sysctl vm.overcommit_memory=1使配置生效。
  • 关闭内核特性transparent huge pages,它会对内存使用和延迟方面有负面影响。echo never > /sys/kernel/mm/transparent_hugepage/enabled
  • 减少swap内存的使用,提高性能。

/etc/sysctl.conf中添加以下内容:

//开启内存过量使用,避免后台保存或复制可能会在内存不足的情况下失败。 被禁用时,它也可能在没有低内存条件的情况下导致失败
vm.overcommit_memory = 1

//TCP积压backlog设置
net.core.somaxconn = 2048

//可以打开的最大文件数
fs.file-max = 6553560

//尽量少使用swap空间,swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。linux的基本默认设置为60
//由于内存的速度会比磁盘快很多,这样子会加大系统IO,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整
vm.swappiness = 1

执行以下命令使参数生效

sysctl -p

6.远程连接

RedisInsight是官网推荐的Redis可视化客户端工具,被称为最好用的Redis GUI。
这里我们用来测试Redis服务的远程连接。

RedisInsight下载链接
在这里插入图片描述

这里我的虚拟机IP是:192.168.206.129,连接信息:
在这里插入图片描述
连接成功:
在这里插入图片描述
在这里插入图片描述

redis-6.x安装及排错
Linux下设置swappiness参数来配置内存使用到多少才开始使用swap分区

猜你喜欢

转载自blog.csdn.net/w1014074794/article/details/129352185