Centos7下安装Redis

  • 包安装

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值