当前位置: 首页 > news >正文

02.Redis 安装

Redis 安装

  • Redis 安装
    • 1. 包安装 Redis
    • 2. 编译安装 Redis
      • 2.1前台启动redis
      • 2.2 消除启动时的Warning提示信息(可选)
      • 2.3 创建 Redis 用户和设置数据目录权限
      • 2.4 创建 Redis 服务 Service 文件
      • 2.5 安装的相关程序介绍
      • 2.6 验证客户端连接 Redis
      • 2.7 程序连接 Redis
    • 3. Docker 容器方式部署

Redis 安装

1. 包安装 Redis

[root@node1 ~]#apt -y install redis[root@Ubuntu2204 ~]#redis-cli 
127.0.0.1:6379> info

2. 编译安装 Redis

Redis 源码包官方下载链接:

https://download.redis.io/releases/

# 安装依赖包
[root@ubuntu2204 ~]#apt update
[root@ubuntu2204 ~]#apt -y install make gcc libjemalloc-dev libsystemd-dev# 下载源码
[root@ubuntu2204 ~]#wget https://download.redis.io/releases/redis-7.2.6.tar.gz
[root@ubuntu2204 ~]#tar -xvf redis-7.2.6.tar.gz
[root@ubuntu2204 ~]#cd redis-7.2.6/# 编译安装
[root@ubuntu2204 redis-7.2.6]#make -j 2 USE_SYSTEMD=yes PREFIX=/apps/redis install# 配置环境变量
[root@ubuntu2204 redis-7.2.6]#echo 'PATH=/apps/redis/bin:$PATH' > /etc/profile.d/redis.sh
[root@ubuntu2204 redis-7.2.6]#. /etc/profile.d/redis.sh# 准备相关目录和配置文件 (创建配置文件、日志、数据等目录)
[root@ubuntu2204 redis-7.2.6]#mkdir /apps/redis/{etc,log,data,run}
[root@ubuntu2204 redis-7.2.6]#cp redis.conf /apps/redis/etc/

2.1前台启动redis

redis-server 是 redis 服务器端的主程序

# 前台启动 redis
[root@ubuntu2204 ~]#redis-server /apps/redis/etc/redis.conf

2.2 消除启动时的Warning提示信息(可选)

1.Tcp backlog 
是指TCP的第三次握手服务器端收到客户端 ack 确认号之后到服务器用Accept函数处理请求前的队列长度,即全连接队列
# Ubuntu22.04默认值满足要求,不再有此告警
[root@ubuntu2204 ~]#cat /proc/sys/net/core/somaxconn 
4096若有Tcp backlog告警可修改配置
vim /etc/sysctl.conf
net.core.somaxconn = 40962.overcommit_memory
内核参数说明:
内核参数overcommit_memory 实现内存分配策略,可选值有三个:0、1、2
0 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则内存申请失败,并把错误返回给应用进程
1 表示内核允许分配所有的物理内存,而不管当前的内存状态如何
2 表示内核允许分配超过所有物理内存和交换空间总和的内存
[root@ubuntu2204 ~]#sysctl vm.overcommit_memory 
vm.overcommit_memory = 0需要修改 vm.overcommit_memory = 1
vim /etc/sysctl.conf
vm.overcommit_memory = 1
sysctl -p3.transparent hugepage
警告:您在内核中启用了透明大页面(THP,不同于一般4k内存页,而为2M)支持。 这将在Redis中造成延迟和内存使用问题。 要解决此问题,请以root 用户身份运行命令“echo never> /sys/kernel/mm/transparent_hugepage/enabled”,并将其添加到您的/etc/rc.local中,以便在重启后保留设置。禁用THP后,必须重新启动Redis。
# Ubuntu22.04默认值满足要求,不再有此告警
[root@ubuntu2204 ~]#cat /sys/kernel/mm/transparent_hugepage/enabled 
always [madvise] never# 重新启动redis 服务不再有前面的Waring信息
[root@ubuntu2204 ~]#redis-server /apps/redis/etc/redis.conf

2.3 创建 Redis 用户和设置数据目录权限

[root@ubuntu2204 ~]#useradd -r -s /sbin/nologin redis
[root@ubuntu2204 ~]#chown -R redis.redis /apps/redis/

2.4 创建 Redis 服务 Service 文件

[root@ubuntu2204 ~]#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
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
LimitNOFILE=1000000[Install]
WantedBy=multi-user.target# Redis 通过Service方式启动
[root@ubuntu2204 ~]#systemctl daemon-reload
[root@ubuntu2204 ~]#systemctl enable redis
[root@ubuntu2204 ~]#systemctl start redis.service 
[root@ubuntu2204 ~]#systemctl status redis.service# Redis 尝试写入 PID 文件时遇到了权限问题
Failed to write PID file: Permission denied修改 Redis 配置文件中的 pidfile 路径
[root@ubuntu2204 ~]#vim /apps/redis/etc/redis.confpidfile /apps/redis/run/redis_6379.pid[root@ubuntu2204 ~]#systemctl daemon-reload 
[root@ubuntu2204 ~]#systemctl restart redis.service再次查看已经没有 Failed to write PID file: Permission denied 报错
[root@ubuntu2204 ~]#systemctl status redis.service# 修改 Redis 配置文件
[root@ubuntu2204 ~]#vim /apps/redis/etc/redis.confbind 0.0.0.0
requirepass 123456
dir /apps/redis/data
logfile "/apps/redis/log/redis_6379.log"
dbfilename dump_6379.rdb[root@ubuntu2204 ~]#systemctl daemon-reload 
[root@ubuntu2204 ~]#systemctl restart redis.service

2.5 安装的相关程序介绍

[root@ubuntu2204 ~]#ll /apps/redis/bin/
redis-benchmark*					# 性能测试程序
redis-check-aof -> redis-server*	# AOF文件检查程序
redis-check-rdb -> redis-server*	# RDB文件检查程序
redis-cli*							# 客户端程序
redis-sentinel -> redis-server*		# 哨兵程序,软连接到服务器端主程序
redis-server*						# 服务端主程序

2.6 验证客户端连接 Redis

# 默认为本机无密码连接
[root@ubuntu2204 ~]#redis-cli 
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> info
127.0.0.1:6379> exit# 远程客户端连接,注意:Redis没有用户的概念 
通过IP 端口 密码 连接
redis-cli -h <Redis服务器IP> -p <PORT> -a <PASSWORD> --no-auth-warning

2.7 程序连接 Redis

Redis 支持多种开发语言访问

# Shell 脚本访问 Redis
[root@ubuntu2204 ~]#cat redis_test.sh 
#!/bin/bash
NUM=100
PASSWORD=123456for i in `seq $NUM`;doredis-cli -h 127.0.0.1 -a "$PASSWORD" --no-auth-warning set key${i} value${i}echo "key${i} value${i} 写入完成!"
done
echo "$NUM个key写入完成"[root@ubuntu2204 ~]#redis-cli -a 123456 --no-auth-warning
127.0.0.1:6379> info keyspace
# Keyspace
db0:keys=100,expires=0,avg_ttl=0

3. Docker 容器方式部署

# 实现Redis的持久化保存
[root@ubuntu2204 ~]#docker run --name redis -p 6379:6379 -d  -v /data/redis:/data redis
http://www.lryc.cn/news/608926.html

相关文章:

  • 13.Redis 的级联复制
  • kafka与其他消息队列(如 RabbitMQ, ActiveMQ)相比,有什么优缺点?
  • 《深入浅出RabbitMQ:从零基础到面试通关》
  • RabbitMQ面试精讲 Day 10:消息追踪与幂等性保证
  • 《软件测试与质量控制》实验报告三 系统功能测试
  • Flutter开发 dart异步
  • Spring lookup-method实现原理深度解析
  • [spring-cloud: 服务注册]-源码解析
  • 【Linux】linux基础开发工具(三) 版本控制器Git、调试器 - gdb/cgdb使用、一些实用的调试技巧
  • graph TD的规则
  • zookeeper持久化和恢复原理
  • 大模型智能体(Agent)技术全景:架构演进、协作范式与应用前沿
  • io_destroy系统调用及示例
  • Redis——运维篇
  • Linux | i.MX6ULL移植 Gdb+Gdbserver 调试(第十四章)
  • day50预训练模型 CBAM注意力
  • 蛇形卷积介绍
  • 实战案例:容器数据卷四部曲(三)目录数据卷
  • 【C++】面向对象编程:继承与多态的魅力
  • 对大脑功能连接进行功能注释
  • git配置公钥/密钥
  • FasrCGI
  • 【ROS2】常用命令
  • Python中的import和from...import有什么区别?
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十六天
  • FFT/STFT/小波/HHT:振动诊断工具生死局,选错=灾难
  • 构造类型--结构体,共同体联合体,枚举
  • 多模态大模型综述:BLIP-2详解(第二篇)
  • jconsole与jvisualvm监控
  • Python 动态属性和特性(特性全解析)