wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar -xvf redis-6.2.6.tar.gz
mv redis-6.2.6 /usr/local/redis-6.2.6
yum install gcc-c++
gcc -v
cd /usr/local/redis-6.2.6
2、编译Redis程序:
make
3、安装Redis:
make install PREFIX=/usr/local/redis
用/etc/redis文件夹存放redis命令和配置文件
mv *.conf /etc/redis
将centos机器上运行的启动文件复制过来。如下:
ls /etc/init.d
dump.rdb functions README redis26379 redis26380 redis26381 redis6379 redis6380 redis6381
chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
看来欧拉OS,默认是没有开启 chkconfig.service的。
systemctl start redis6379
启动失败,看日志: cat /tmp/redis-6379.log
这句比较重要:Increased maximum number of open files to 10032 (it was originally set to 1024).
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.
原因分析:vm.overcommit_memory 指的是进程申请的内存大小。当参数值为 0 时,如果一次性申请的内存大小超过了系统总内存,有可能被拒绝。当参数值为 0 时,有可能会导致 redis 执行 bgsave 操作保存 rdb 文件失败。
修改方式1:系统级别,即 linux 内核能分配的最大文件描述符数量
nano /etc/sysctl.conf
尾部加入:
fs.file-max = 102400
net.core.somaxconn = 511
vm.overcommit_memory = 1
sysctl -p
重新登录:
su - root
2.用户级别,即用户进程能打开的最大文件描述符数量;
[root@op7080 ~]# ulimit -Hn
524288 --hard nofile
[root@op7080 ~]# ulimit -Sn
1024 --soft nofile
root@op7080 ~]# /usr/lib/systemd/systemd-sysv-install enable redis6379
root@op7080 ~]# /usr/lib/systemd/systemd-sysv-install enable redis6380
root@op7080 ~]# /usr/lib/systemd/systemd-sysv-install enable redis6381
[root@op7080 ~]# /usr/lib/systemd/systemd-sysv-install enable redis26381
[root@op7080 ~]# /usr/lib/systemd/systemd-sysv-install enable redis26380
[root@op7080 ~]# /usr/lib/systemd/systemd-sysv-install enable redis26379
[root@op7080 ~]# firewall-cmd --zone=public --add-port=6379-6381/tcp --permanent
success
[root@op7080 ~]# firewall-cmd --zone=public --add-port=26379-26381/tcp --permanent
success