麦克斯仇
Think different
160
文章
42175
阅读
首页
INDEX
文章
ARTICLE
关于
ABOUT
CentOS7 Debian12 安装 Redis6.2.x
创建日期:
2020/09/09
修改日期:
2024/07/15
Linux
Redis
> 注:以 `Redis 6.2.14` 为例 # 下载 - 下载:[https://download.redis.io/releases/](https://download.redis.io/releases/),点击下载 - 校验:[https://github.com/redis/redis-hashes/blob/master/README](https://github.com/redis/redis-hashes/blob/master/README),查看 `hash` 值和下载地址 下载后将安装包上传至服务器,或者使用 `wget` 命令下载,例如: ```bash wget http://download.redis.io/releases/redis-6.2.14.tar.gz ``` # 安装 解压 ```bash # 解压 tar -zxf redis-6.2.14.tar.gz # 进入该目录 cd redis-6.2.14/ ``` 安装依赖 ``` # CentOS7 yum -y install gcc tcl # Debian12 apt-get install make gcc pkg-config tcl ``` 编译 ```bash make ``` 测试(没必要,时间很长) ```bash make test ``` 安装至指定目录 ```bash make PREFIX=/usr/local/redis install ``` 若中途编译出错,请先执行 `make distclean` 清除所有内容之后再检查环境并重新编译 # 环境变量 编辑环境变量配置文件 ```bash vim /etc/profile ``` 在文档末尾添加如下内容,插入后保存文件 ``` export PATH=$PATH:/usr/local/redis/bin ``` 使环境变量生效 ```bash source /etc/profile ``` # 解决WARNING 若直接启动 `redis-server` ,会出现如下几个 `WARNING` : - `Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf`<br>没有指定配置文件,使用了默认配置 - ( `Debian` 系统没有)`WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.`<br>TCP backlog 值设置太小,参考: - 译文:[深入理解Linux TCP backlog](https://www.jianshu.com/p/7fde92785056) - 原文:[How TCP backlog works in Linux](http://veithen.io/2014/01/01/how-tcp-backlog-works-in-linux.html) - `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.`<br>overcommit_memory 不能设置为0,在内存不足的情况下,后台程序save可能失败。参考: - [有关linux下redis overcommit_memory的问题](https://blog.csdn.net/whycold/article/details/21388455) ## WARNING 1 先跳过,下面的教程会设置配置文件 ## WARNING 2 3 编辑配置文件 ```bash vim /etc/sysctl.conf ``` 添加如下内容 ``` net.core.somaxconn = 1024 vm.overcommit_memory = 1 ``` 生效 ```bash sysctl -p ``` # 设置配置文件 > 配置文件使用 `redis-6.2.6/redis.conf` 作为默认值 拷贝配置到安装目录下 ```bash cp redis.conf /usr/local/redis/ ``` 编辑配置文件 ```bash vim /usr/local/redis/redis.conf ``` 修改如下内容并保存 ```ini # 允许任意IP访问 bind 0.0.0.0 # 关闭保护模式(未设置密码时,允许空密码访问) protected-mode no # 端口(默认6379) port 6379 # pid文件位置(防止安装多个Redis时冲突) pidfile /usr/local/redis/redis.pid # 日志文件位置 logfile /usr/local/redis/redis.log # 数据持久化保存位置(RDB与AOF均使用该配置) dir /usr/local/redis/ # 连接密码(设置初始密码,默认为空,建议设置) requirepass 123 # 开启AOF appendonly yes ``` > 从 `Redis 6` 开始, `requirepass` 只是一个兼容性设置,新版本应当使用 `ACL` 访问控制系统,这里先按照旧版本设置密码, `ACL` 后期介绍 # 设置系统服务 > 内容参考 `redis-6.2.14/utils/systemd-redis_server.service` 新建一个服务文件 ```bash vim /usr/lib/systemd/system/redis.service ``` 内容如下 ```ini [Unit] Description=redis.server Wants=network-online.target After=network-online.target [Service] ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf Type=simple TimeoutStartSec=infinity TimeoutStopSec=infinity [Install] WantedBy=multi-user.target ``` 刷新系统服务、设置开机自启、启动服务、查看服务状态 ```bash systemctl daemon-reload systemctl enable redis.service systemctl start redis.service systemctl status redis.service ``` # 删除源文件 ```bash cd .. rm -rf redis-6.2.14* ``` # 测试连接 > 配置文件内设置的是临时密码,建议修改一下 ```bash # 连接redis redis-cli # 登录(若配置文件内未设置密码,则跳过) AUTH 123 # 测试(收到PONG消息) ping ```
30
全部评论