编译安装redis 6.2.4

  一、下载redis 6.2.4的包

https://download.redis.io/releases/redis-6.2.4.tar.gz?_ga=2.70789136.1042920708.1625648003-2123206961.1625648003

  官网地址:https://redis.io/

  中国区维护的网址:http://redis.cn/

   二、解压缩

tar xf redis-6.2.4_(2).tar.gz 

  三、安装

    1、安装gcc编译器

yum install gcc -y

    2、进入解压的目录

cd redis-6.2.4

    3、安装,并指定安装目录

make PREFIX=/apps/redis install

注释:指定安装路径,不指定目录会放在当前目录,目录不存在会自动创建

  四、复制源码包中的配置文件

    1、在/apps/redis 下创建etc(可以不做)

mkdir /apps/redis/etc

    2、复制文件到/apps/redis 下的etc下(也可也直接复制到对应的redis目录下)

cp /data/redis-6.2.4/redis.conf /apps/redis/etc/

  五、启动redis 服务

/apps/redis/bin/redis-server 

会显示警告:短期使用不会有问题,但长期使用会出问题

警告如下:

6970:M 07 Jul 2021 18:23:53.111 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
6970:M 07 Jul 2021 18:23:53.111 # Server initialized
6970:M 07 Jul 2021 18:23:53.111 # 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.
6970:M 07 Jul 2021 18:23:53.111 * Ready to accept connections

    1、 这个值要求511, 目前设置的是128

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

  cklog backlog 参数控制的是 三次 握手 的时候 server serverserver 端收到 client ackclient ack client ackclient ackclient ack 确认 号之后 的队列值

配置为511或者更高的值:

  解决办法:

vim /etc/sysctl.conf 
添加大于511的值即可
net.core.somaxconn = 512  

使其生效:

sysctl -p

    2、

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.

  0、表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

  1、表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
  2、表示内核允许分配超过所有物理内存和交换空间总和的内存

  解决办法:

vim /etc/sysctl.conf 
vm.overcommit_memory = 1 

使其生效:

sysctl -p

   五、以服务的方式启用

vim /usr/lib/systemd/system/redis.service

[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf --supervised systemd
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target

 

  1、以Redis用户启动,创建Redis用户

useradd redis -s /sbin/nologin 

  2、修改redis目录的所有者所有组为redis

chown redis.redis /apps/redis/ -R

或者使用软连接方式

ln -sv /apps/redis/bin/redis-* /usr/bin/

 注释,如果报错的话,可能是gcc没安装哦

------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------- 博客均为个人笔记,无所追求,仅供参考~~~ QQ--2382990774
原文地址:https://www.cnblogs.com/alexlv/p/14982783.html