当前位置: 首页 > 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.dtcms.com/a/313422.html

相关文章:

  • MPLS 静态LSP
  • TV电视版软件集合分享
  • 深入理解Java并发编程:原理、实战与最佳实践
  • Redis 7 中的 Set 和 Zset 使用
  • 基于transformer的目标检测——匈牙利匹配算法
  • 深入解析HashMap:原理与性能优化
  • Vim编辑器详解:从入门到高效使用
  • 从零开始的CAD|CAE开发: LBM源码实现分享
  • 编程语言分类
  • JAVAEE--5.多线程之常见的锁策略
  • AI Competitor Intelligence Agent Team
  • 【openlayers框架学习】七:绘制线要素以及点击画线功能
  • 力扣热题100----------141.环形链表
  • 基于BiLSTM+CRF实现NER
  • 【机器人】VLN-R1 微调 | 增强训练 | 连续导航
  • Web3合约ABI,合约地址生成部署调用及创建,连接钱包,基础交易流程
  • ARPO:让LLM智能体更高效探索
  • 【Linux网络编程基础--socket地址API】
  • 多 4G 通讯模组共存时的干扰问题深度解析与解决方案
  • leecode-每日一题-2106. 摘水果
  • vmfusion启动centos6.10 一直卡到call 169.254.169.254
  • 全面解析 BGE Embedding 模型:训练方式、模型系列与实战用法
  • Redis——常用指令汇总指南(三)(哈希类型)
  • 编写xsync集群分发脚本(保姆级别)
  • Redis 数据同步机制
  • 【Linux】Makefile Cmake—基操
  • [特殊字符]字节Get!免费进楼攻略速存[特殊字符]
  • LWIP从FreeRTOS到uC/OS-III的适配性改动
  • linux 扩展未分配的磁盘空间到home下
  • SQL157 更新记录(一)