Linux安装Redis教程及警告消除操作
2022-01-07centos8下安装测试通过
#查询可用安装包
dnf list redis
#安装redis
dnf install redis
#启动redis
redis-server
如果没有查询到可安装包
首先安装仓库
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
dnf module list | grep redis 查找redis,发现有5.0,6.0,6.2
sudo dnf module install redis:remi-6.0 -y
如果以上方式安装不了可以尝试自己编译
#添加开机启动
sudo systemctl enable redis.service
#开始运行
sudo systemctl start redis.service
配置文件在/etc/redis.conf下根据自己需求自行配置即可。
redis日志会在/var/log/redis/redis.log下
警告消除
第一个警告:WARNING:The TCP backlog setting of 511 cannot be enforced 。。。
TCP backlog是TCP全连接状态队列大小,Centos8默认值是128,cat /proc/sys/net/core/somaxconn可查看,Redis配置文件配置了511的值,超过了限制,因此会出现警告。解决方法:
echo 'net.core.somaxconn = 512' | sudo tee -a /etc/sysctl.conf > /dev/null
使其生效:
sudo sysctl -p
第二个警告:WARNING overcommit_memory is set to 0!。。。
overcommit_memory是内存分配策略
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
Centos8默认值0,需要设置为1
$ echo 'vm.overcommit_memory = 1' | sudo tee -a /etc/sysctl.conf > /dev/null
使其生效
$ sudo sysctl -p
第三个警告: WARNING you have Transparent Huge Pages (THP) support enabled in your kernel。。。
创建文件
$ sudo vim /usr/bin/disable-transparent-hugepage
输入:
#!/bin/bash
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
运行
$ sudo chown root:root /usr/bin/disable-transparent-hugepage
$ sudo chmod 770 /usr/bin/disable-transparent-hugepage
sudo vim /etc/systemd/system/disable-transparent-hugepage.service
输入:
[Unit]
Description=Disable Transparent-Huge-Pages for Redis.
Before=redis.service
[Service]
Type=exec
ExecStart=/usr/bin/disable-transparent-hugepage
[Install]
WantedBy=multi-user.target
使其开机运行:
$ sudo systemctl enable disable-transparent-hugepage.service
最后别忘了重启Redis服务
sudo systemctl restart redis.service
参考https://blog.csdn.net/sxdx2007401103/article/details/113740447