Centos7.6 安装Redis7

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。Centos7.6 安装Redis7,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

方式一:包安装

1.安装(#默认安装redis-3.2.12)

yum install -y redis

2.启动并设置开机自启动

systemctl enable --now redis

3.查看6379端口是否开启

ss -ntl

方式二:编译安装

1.安装依赖包

yum -y install gcc make jemalloc-devel systemd-devel

2.下载源码包

#其它版本地址:Index of /releases/

wget http://download.redis.io/releases/redis-7.0.8.tar.gz

3.解压

tar xvf redis-7.0.8.tar.gz

4.切换目录

cd redis-7.0.8

5.安装

make -j 2 USE_SYSTEMD=yes PREFIX=/apps/redis install

#选项说明:

USE_SYSTEMD:支持systemd

PEFIX=指定安装目录路径

6.配置环境变量

echo 'PATH=/apps/redis/bin:$PATH' > /etc/profile.d/redis.sh

. /etc/profile.d/redis.sh

7.创建配置文件、日志、数据等目录

mkdir /apps/redis/{etc,log,data,run}

8.复制源配置文件到新建的配置目下

cp redis.conf /apps/redis/etc/

9.前台启动

redis-server /apps/redis/etc/redis.conf

#发现三个Warning提示信息,最新的redis-7.0.8只有前两个:

(1)

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

#TCP backlog 是指TCP的第三次握手服务器端收到客户端 ack确认号之后到服务器用Accept函数处理请求 前的队列长度,即全连接队列 

#消除方法:

vim /etc/sysctl.conf


net.core.somaxconn = 1024

 

sysctl -p

(2) 

WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. 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.

#内核参数说明: 

内核参数overcommit_memory 实现内存分配策略,可选值有三个:0、1、2

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

1 表示内核允许分配所有的物理内存,而不管当前的内存状态如何

2 表示内核允许分配超过所有物理内存和交换空间总和的内存 

#消除方法:

vim /etc/sysctl.conf

vm.overcommit_memory = 1

  

sysctl -p 

  

(3) 

#redis-5.0.7会有如下提示:

WARNING you have Transparent Huge Pages (THP) support enabled in your kernel.
This will create latency and memory usage issues with Redis. To fix this issue
run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as
root, and add it to your /etc/rc.local in order to retain the setting after a
reboot. Redis must be restarted after THP is disabled.

警告:您在内核中启用了透明大页面(THP,不同于一般4k内存页,而为2M)支持。 这将在Redis中造成延迟
和内存使用问题。 要解决此问题,请以root 用户身份运行命令“echo never>
/sys/kernel/mm/transparent_hugepage/enabled”,并将其添加到您的/etc/rc.local中,以便在
重启后保留设置。禁用THP后,必须重新启动Redis。

#消除方法:

echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local 

echo never > /sys/kernel/mm/transparent_hugepage/enabled

重新启动redis验证是否消除 Warning

10.创建 Redis 用户和设置数据目录权限

useradd -r -s /sbin/nologin redis

chown -R redis.redis /apps/redis/ 

#useradd -s:指定用户登录的shell

#/sbin/nologin:shell类型中的一种,作用是禁止用户登录

11.创建Service文件,配置自启动

vim /lib/systemd/system/redis.service

 

[Unit]
Description=Redis persistent key-value database
After=network.target[Service]
ExecStart=/apps/redis/bin/redis-server /apps/redis/etc//redis.conf --supervised systemd
ExecStop=/bin/kill -s QUIT $MAINPID
Type=notify                             #如果支持systemd可以启用此行
User=redis                              
Group=redis                             
RuntimeDirectory=redis                  
RuntimeDirectoryMode=0755              
LimitNOFILE=1000000                     #指定此值才支持更大的maxclients值[Install]
WantedBy=multi-user.target

12.通过Service方式启动

systemctl daemon-reload

systemctl start redis

systemctl status redis

 

配置允许远程连接 并添加密码

redis.conf 配置文件部分修改如下

# bind 127.0.0.1
bind 0.0.0.0   # 允许外部链接
# protected-mode yes
protected-mode no   # 关闭保护模式,是为了远程连接
# daemonize no
daemonize yes      # 守护模式, 为了能让服务后台运行
requirepass 111111 #你的密码

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/198799.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!