官网下载:https://redis.io/download
历史版本:https://download.redis.io/releases/
# 安装wget工具
yum -y install wget
# 创建自己的redis文件夹
mkdir -p /nginx/core
cd /nginx/core
# 自己复制的链接地址
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
tar -zxf redis-7.2.4.tar.gz
cd redis-7.2.4
gcc -v
# 首先安装编译需要的环境依赖
yum install gcc-c++
# 如果安装redis出现错误执行以下命令,需要清理源码目录后再次执行编译
make distclean
# PREFIX关键字的作用是编译的时候用于指定程序存放的路径,指定了redis必须存在 /usr/local/redis 目录
#方便后续的卸载,直接rm -rf /usr/local/redis 即可删除redis
make PREFIX=/usr/local/redis install
# 可执行文件存放在 /usr/local/bin 目录
# 库文件会存放在 /usr/local/lib 目录
# 配置文件会存放在/usr/local/etc目录
# 其他的资源文件会存放在 usr/local/share 目录
# 不建议,不方便后续卸载
make install
redis.conf
到/usr/local/redis目录中# 查找redis.conf
find / -name redis.conf
# 将redis的源码目录中复制 redis.conf 到 redis 的安装目录
cp /nginx/core/redis-7.2.4/redis.conf /usr/local/redis
requirepass 123456 # 开启redis验证,修改为自己的密码
protected-mode no #需要远程连接,设置为no,取消保护模式
#bind 127.0.0.1 # 允许redis远程连接,必须注释掉(注释或者改为bind 0.0.0.0)
port 6379 #redis的端口
daemonize yes #后台启动redis设置为yes,开启守护进程模式
appendonly yes #开启redis数据持久化
配置项名称 | 配置项值范围 | 说明 |
---|---|---|
daemonize | yes、no | yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行 |
port | 指定 Redis 监听端口,默认端口为 6379 | |
bind | 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。 | |
protected-mode | yes 、no | 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。 |
timeout | 300 | 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能 |
loglevel | debug、verbose、notice、warning | 日志级别,默认为 notice |
databases | 16 | 设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到 |
rdbcompression | yes、no | 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。 |
dbfilename | dump.rdb | 指定本地数据库文件名,默认值为 dump.rdb |
dir | 指定本地数据库存放目录 | |
requirepass | 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH 命令提供密码,默认关闭 | |
maxclients | 0 | 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。 |
maxmemory | XXX | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。 |
cd /usr/local/redis/bin/
./redis-server -v
./redis-cli -v
123156:C 23 Jan 2024 22:22:22.467 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it 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.
# 编辑sysctl.conf文件
vim /etc/sysctl.conf
#添加以下行,修改配置启用内存过度分配
vm.overcommit_memory = 1
#执行命令"sysctl -p" 或 重启系统,使配置生效
sysctl -p
# 或者使更改生效,运行以下命令
sysctl vm.overcommit_memory=1
# 验证更改是否已生效
cat /proc/sys/vm/overcommit_memory
# 返回1,则表示内存过度分配已成功启用
cd /usr/local/redis
#进入redis安装目录,执行下面命令启动redis服务
./bin/redis-server redis.conf
# 查看 Redis 服务器进程
ps -ef | grep redis
cd /usr/local/redis
#进入redis安装目录,执行下面命令启动redis-cli
./bin/redis-cli
./bin/redis-cli shutdown
# 查看 Redis 服务器进程
ps -ef | grep redis
# kill -9 进程的PID
kill -9 27320
vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis Server
After=network.target
[Service]
Type=forking
# 配置成自己的路径
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
# 重新加载服务配置文件
systemctl daemon-reload
#启动redis服务
systemctl start redis
#停止redis服务
systemctl stop redis
#重新启动服务
systemctl restart redis
#查看服务当前状态
systemctl status redis
#设置开机自启动
systemctl enable redis
#停止开机自启动
systemctl disable redis
vim /etc/profile
# redis
export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin/
source /etc/profile
redis-server -v
redis-cli -v