zoukankan      html  css  js  c++  java
  • 编译安装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
  • 相关阅读:
    vue 拖拽移动(类似于iPhone虚拟home )
    鼠标事件-MouseEvent【转】
    JS快速排序 希尔排序 归并排序 选择排序
    JS 继承
    Centos6 iptables 防火墙设置【转】
    centos6 mongodb 安装
    操作系统中涉及的各种调度算法
    循环队列
    队列
    栈(C++)
  • 原文地址:https://www.cnblogs.com/alexlv/p/14982783.html
Copyright © 2011-2022 走看看