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

【Redis】Linux、Windows、Docker 环境下部署 Redis

一、Linux环境部署Redis

1、卸载

# 查看 Redis 是否还在运行
[appuser@localhost redis]$ ps -ef|grep redis
appuser  135694 125912  0 14:24 pts/1    00:00:00 ./bin/redis-server *:6379
appuser  135731 125912  0 14:24 pts/1    00:00:00 grep --color=auto redis# 停止 Redis 
[appuser@localhost redis]$ redis-cli SHUTDOWN# 删除 Redis 安装的相关文件
[root@localhost ~]# find / -name redis  
[root@localhost ~]# rm -rf /xxx/xxx/xxx

2、安装

# 依赖安装
[appuser@localhost ~]$yum -y install gcc gcc-c++ libstdc++-devel# redis下载:https://redis.io/download
[appuser@localhost ~]$ tar -zxvf redis-6.2.3.tar.gz -C /app# 编译
[appuser@localhost ~]$cd /app/redis-6.2.3
[appuser@localhost redis-6.2.3]$ make# 编译可能报错:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2# 报错原因:分配器 allocator会使用 jemalloc,而不是 libc,因为相比于libc,jemalloc 有更少的 fragmentation problems。但是如果目前环境没有jemalloc,只有 libc,所以 make 出错
# 解决方法:使用环境变量 MALLOC 来建立Redis
[appuser@localhost redis-6.2.3]$ make MALLOC=libc# 安装
[appuser@localhost redis-6.2.3]$ make PREFIX=/app/redis install

Reids 的默认安装路径在/usr/local/bin,关键字 PREFIX 作用是编译的时候用于指定程序存放的路径。如果不添加该关键字,Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定好目录也方便后续的卸载,后续直接rm -rf /app/redis即可删除Redis

3、配置

  • Redis详细配置

4、启动Redis 服务器

Redis启动方式有两种:直接启动、通过初始化脚本启动,分别适用于开发环境和生产环境

  • 直接启动
# 拷贝一份配置文件
[appuser@localhost ~]$ cd /app/redis/bin
[appuser@localhost bin]$ ./redis-server ../redis.conf

配置文件redis.conf中设置daemonize=yes,则Redis将采取后台进程方式启动

  • 通过初始化脚本启动

在Linux中可以通过初始化脚本启动Redis,使得Reds能随系统自动运行,在生产环境中推荐使用该方式运行Redis。具体步骤如下:

① 配置初始化脚本:在redis-6.2.3/utils文件夹下有一个初始化脚本文件redis_init_script,将该脚本复制到ect/init.d目录中,文件重命名为redis_端口号,并将脚本中REDISPORT变量值改为同样的端口号。

② 创建文件夹:/etc/redis(存储redis的配置文件)、/var/redis/端口号(存放redis持久化文件)

③ 修改配置文件:将配置文件模板复制到/etc/redis目录中,重命名为端口号.conf,并修改一下参数:

# 使Redis以守护进程模式进行
daemonize=yes
# 设置Redis的PID文件位置
pidfile=/var/run/redis_端口号.pid
# 设置Redis监听的端口号
port=端口号
# 设置持久化文件存放位置
dir=/var/redis/端口号

现在就可以使用/etc/init.d/redis_端口号 start 来启动Redis了,而后需要执行下面的命令使Redis随系统自动启动:

[root@localhost ~]# sudo update_rc.d redis_端口号 default

5、停止 Redis

Redis 有可能正在将内存中的数据同步到硬盘中,强行终止Redis进程可能会丢失数据,正确方式是向Redis发送 SHUTDOWN命令

[appuser@localhost bin]$ ./redis-cli SHUTDOWN

当 Redis收到 SHUTDOWN命令后会先断开所有客户端链接,然后根据配置执行持久化,最后退出。

Redis 可以妥善处理SIGTERM信号,所以使用kill Redis进程的PID 也可以正常结束 Redis,效果同 SHUTDOWN命令。

6、客户端

通过 redis-cli 向 Redis 发送命令有两种方式:

  • 将命令作为redis-cli的参数执行
[appuser@localhost bin]$ ./redis-cli -h 127.0.0.1 -p 6379 PING
  • 交互模式
# 不携带参数进入交互模式
[appuser@localhost bin]$ ./redis-cli
127.0.0.1:6379> auth 123456@rds
127.0.0.1:6379> PING

二、Windows 环境部署 Redis

1、部署

(1)下载

目前 Redis官网 没有提供Windows版本的安装程序,如果需要安装,需要到Github上下载适合Windows的版本。

具体下载地址为:

  • Redis-x64-3.0.504.zip
  • Redis-x64-5.0.14.1.zip

(2)解压

将下载的压缩包解压到任意一个目录

(3)创建日志文件

Redis 解压后的根目录,新建 Logs 目录,然后在该目录下新建 redis_log.txt 文件。

否则,在进行下面操作的时候会报 Redis service failed to start. 错误。

2、启动

命令行进入刚才解压文件的根目录下,执行命令:

Z:\Program Files\Redis-x64-3.0.504> redis-server.exe redis.windows.conf

这种方式一旦关闭命令行,Redis 服务就关闭了,所以需要将 Redis 安装成系统(Windows)服务。

3、Windows 服务

命令行进入redis 根目录下,执行命令:

Z:\Program Files\Redis-x64-3.0.504> redis-server.exe --service-install redis.windows-service.conf --loglevel verbose --service-name Redis

执行成功后,可以在 Windows 的系统服务(命令行输入 services.msc)中找到该服务(服务名称为 redis),对应的配置文件是 redis.windows-service.conf,对应上面注册服务时使用的配置文件,所以后续的自定义配置就需要修改这个文件。

4、Redis 命令

# 安装服务
./redis-server.exe --service-install# 卸载服务
./redis-server.exe --service-uninstall# 开启服务
./redis-server.exe --service-start# 停止服务
./redis-server.exe --service-stop# 开启 CLI 模式
./redis-cli.exe -h 127.0.0.1 -p 6379

三、Docker 部署 Redis 集群

1、单机伪集群

# 1、创建自定义网络
docker network create redis --subnet 172.38.0.0/16# 2、创建六个Redis配置文件
for port in $(seq 1 6); \ 
do \ 
mkdir -p /app/redis/node-${port}/conf 
touch /app/redis/node-${port}/conf/redis.conf 
cat << EOF >/app/redis/node-${port}/conf/redis.conf 
port 6379  
bind 0.0.0.0 
cluster-enabled yes  
cluster-config-file nodes.conf 
cluster-node-timeout 5000 
cluster-announce-ip 172.38.0.1${port} 
cluster-announce-port 6379 
cluster-announce-bus-port 16379 
appendonly yes 
EOF 
done# 3、启动Redis容器
for port in $(seq 1 6); \ 
do \ 
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
-v /app/redis/node-${port}/data:/data \
-v /app/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.1${port} redis redis-server /etc/redis/redis.conf
done# 4、创建集群
docker exec -it redis-1 /bin/sh
redis-cli --cluster create --cluster-replicas 1 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 

相关文章:

【Redis】Linux、Windows、Docker 环境下部署 Redis

一、Linux环境部署Redis 1、卸载 # 查看 Redis 是否还在运行 [appuserlocalhost redis]$ ps -ef|grep redis appuser 135694 125912 0 14:24 pts/1 00:00:00 ./bin/redis-server *:6379 appuser 135731 125912 0 14:24 pts/1 00:00:00 grep --colorauto redis# 停止…...

反函数定义及其推导

文章目录 定义存在条件举例说明总结 反函数是数学中一种特殊的函数&#xff0c;用于“逆转”另一个函数的映射关系。 定义 设有一个函数 f : X → Y f: X \to Y f:X→Y。如果存在一个函数 g : Y → X g: Y \to X g:Y→X&#xff0c;使得对于所有 x ∈ X x \in X x∈X 和 y…...

2025.2.9机器学习笔记:PINN文献阅读

2025.2.9周报 文献阅读题目信息摘要Abstract创新点网络架构实验结论缺点以及后续展望 文献阅读 题目信息 题目&#xff1a; GPT-PINN:Generative Pre-Trained Physics-Informed Neural Networks toward non-intrusive Meta-learning of parametric PDEs期刊&#xff1a; Fini…...

Oracle数据连接 Dblink

拓展&#xff1a; oracle远程登陆数据库 1.oracle客户端或者服务端 2.修改你的电脑如下路径文件&#xff08;服务器IP,服务器的数据库名&#xff0c;服务器的数据库端口号&#xff09; c:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora orcl_109 (DESCRIPTION …...

fetch请求总结,fastadmin中后台接口强制返回json数据

fetch请求 提交图片,只支持formData方式,这样会自动变为multiform方式,而且一般的post大多都可以用这样的方式来完成请求 const formData new FormData(); formData.append(file, fileInput.files[0]); formData.append(pid, id); formData.append(dc, 1);fetch(/api/common…...

基于STM32的智能鱼缸水质净化系统设计

&#x1f91e;&#x1f91e;大家好&#xff0c;这里是5132单片机毕设设计项目分享&#xff0c;今天给大家分享的是智能鱼缸水质净化系统。 目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 1、设计要求…...

JAVA安全—FastJson反序列化利用链跟踪autoType绕过

前言 FastJson这个漏洞我们之前讲过了,今天主要是对它的链条进行分析一下,明白链条的构造原理。 Java安全—log4j日志&FastJson序列化&JNDI注入_log4j漏洞-CSDN博客 漏洞版本 1.2.24及以下没有对序列化的类做校验,导致漏洞产生 1.2.25-1.2.41增加了黑名单限制,…...

格式化字符串漏洞(Format String Vulnerability)

格式化字符串漏洞&#xff08;Format String Vulnerability&#xff09;是程序中因不当处理格式化字符串参数而导致的一类安全漏洞&#xff0c;常被攻击者利用来读取内存数据、篡改程序执行流程&#xff0c;甚至执行任意代码。以下是对其原理、利用方式及防御措施的详细解析&am…...

C++--iomanip库

目录 1. 设置字段宽度&#xff1a;std::setw() 2. 设置浮点数精度&#xff1a;std::setprecision() 3. 设置填充字符&#xff1a;std::setfill() 4. 控制对齐方式&#xff1a;std::left 和 std::right&#xff0c;std::internal 5. 控制进制输出&#xff1a;std::hex、std…...

Redis 集群原理、主从复制和哨兵模式的详细讲解

引言&#xff1a;本文记录了博主在学习Redis的过程中的原理&#xff0c;了解为什么使用与怎么样使用 Redis 集群&#xff0c;在使用 Redis 集群时出现的主从复制和哨兵模式的相关知识。本文并不涉及Redis安装。 文章目录 一、简单介绍什么是 Redis二、为什么要使用 Redis 集群三…...

基于Java的远程视频会议系统(源码+系统+论文)

第一章 概述 1.1 本课题的研究背景 随着人们对视频和音频信息的需求愈来愈强烈&#xff0c;追求远距离的视音频的同步交互成为新的时尚。近些年来&#xff0c;依托计算机技术、通信技术和网络条件的发展&#xff0c;集音频、视频、图像、文字、数据为一体的多媒体信息&#xff…...

springboot 事务管理

在Spring Boot中&#xff0c;事务管理是通过Spring框架的事务管理模块来实现的。Spring提供了声明式事务管理和编程式事务管理两种方式。通常&#xff0c;我们使用声明式事务管理&#xff0c;因为它更简洁且易于维护。 1. 声明式事务管理 声明式事务管理是通过注解来实现的。…...

深度学习-神经机器翻译模型

以下为你介绍使用Python和深度学习框架Keras&#xff08;基于TensorFlow后端&#xff09;实现一个简单的神经机器翻译模型的详细步骤和代码示例&#xff0c;该示例主要处理英 - 法翻译任务。 1. 安装必要的库 首先&#xff0c;确保你已经安装了以下库&#xff1a; pip insta…...

.NET周刊【2月第1期 2025-02-02】

国内文章 dotnet 9 已知问题 默认开启 CET 导致进程崩溃 https://www.cnblogs.com/lindexi/p/18700406 本文记录 dotnet 9 的一个已知且当前已修问题。默认开启 CET 导致一些模块执行时触发崩溃。 dotnet 使用 ColorCode 做代码着色器 https://www.cnblogs.com/lindexi/p/…...

【合集】Java进阶——Java深入学习的笔记汇总 amp; 再论面向对象、数据结构和算法、JVM底层、多线程

前言 spring作为主流的 Java Web 开发的开源框架&#xff0c;是Java 世界最为成功的框架&#xff0c;持续不断深入认识spring框架是Java程序员不变的追求&#xff1b;而spring的底层其实就是Java&#xff0c;因此&#xff0c;深入学习Spring和深入学习Java是硬币的正反面&…...

GPU、CUDA 和 cuDNN 学习研究【笔记】

分享自己在入门显存优化时看过的一些关于 GPU 和 CUDA 和 cuDNN 的网络资料。 更多内容见&#xff1a; Ubuntu 22.04 LTS 安装 PyTorch CUDA 深度学习环境-CSDN博客CUDA 计算平台 & CUDA 兼容性【笔记】-CSDN博客 文章目录 GPUCUDACUDA Toolkit都包含什么&#xff1f;NVID…...

【5】阿里面试题整理

[1]. 介绍一下ZooKeeper ZooKeeper是一个开源的分布式协调服务&#xff0c;核心功能是通过树形数据模型&#xff08;ZNode&#xff09;和Watch机制&#xff0c;解决分布式系统的一致性问题。 它使用ZAB协议保障数据一致性&#xff0c;典型场景包括分布式锁、配置管理和服务注…...

计算机毕业设计hadoop+spark+hive物流预测系统 物流大数据分析平台 物流信息爬虫 物流大数据 机器学习 深度学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

Wpf美化按钮,输入框,下拉框,dataGrid

Wpf美化按钮&#xff0c;输入框&#xff0c;下拉框&#xff0c;dataGrid 引用代码后 引用资源 <ControlTemplate x:Key"CustomProgressBarTemplate" TargetType"ProgressBar"><Grid><Border x:Name"PART_Track" CornerRadius&q…...

搜索插入位置:二分查找的巧妙应用

问题描述 给定一个已排序的整数数组 nums 和一个目标值 target&#xff0c;要求在数组中找到目标值并返回其索引。如果目标值不存在于数组中&#xff0c;则返回它按顺序插入的位置。必须使用时间复杂度为 O(log n) 的算法。 示例&#xff1a; 示例1&#xff1a; 输入: nums …...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...

迁移科技3D视觉系统:重塑纸箱拆垛场景的智能革命

一、传统拆垛场景的困局与破局之道 在汽车零部件仓库中&#xff0c;每天有超过2万只异形纸箱需要拆垛分拣。传统人工拆垛面临三大挑战&#xff1a; 效率瓶颈&#xff1a;工人每小时仅能处理200-300件&#xff0c;且存在间歇性疲劳安全隐患&#xff1a;20kg以上重箱搬运导致年…...