【Redis】构建强韧的远程Redis连接与端口保障机制完美指南
【Redis】构建强韧的远程Redis连接与端口保障机制完美指南
大家好 我是寸铁👊
总结了【Redis】构建强韧的远程Redis连接与端口保障机制完美指南✨
喜欢的小伙伴可以点点关注 💝
前言
在当今的软件开发领域中,远程访问和操作数据存储是极为常见且重要的需求之一。特别是对于大规模应用或分布式系统而言,远程连接到数据存储以进行读写操作是至关重要的。在这样的场景中,
Redis作为一种快速、高效的内存数据库,被广泛应用于缓存、会话管理和消息队列等各种用例中。
在使用Golang编写程序实现远程连接和操作Redis时,需要一套可靠、高效的解决方案。本篇博客将探讨如何通过Golang语言来实现对Redis数据库的远程访问和操作。我们将介绍如何建立与Redis的连接、进行数据读写操作以及保障远程连接的安全性。 通过学习本文,您将掌握如何利用Golang编写出优雅、稳健的远程Redis连接程序,为您的应用提供可靠的数据支持。
代码如下:
var rdb *redis.Client// 建立redis连接
func init() {rdb = redis.NewClient(&redis.Options{Addr: "182.44.10.6:6379",Password: "",DB: 0,})
}
步骤
Step1
- 先找到
redis.conf配置文件
find / -name redis.conf
如:我的配置文件在如下目录:

- 之后再cd到所在的目录
cd /xx/redis-7.0.8/
- 进入目录打开文件
vim redis.conf
- 找到如下位置
bind 127.0.0.1
- 修改为如下:
bind 0.0.0.0
这一步是使得不只是向本地开放
redis连接,而是向外部开放,这样就可以远程连接了。

- 再找到如下信息位置:
protected-mode yes

- 修改内容如下:
protected-mode no

这一步是打开受保护模式,使得外部可以远程访问
redis
- 保存并退出
Step2
- 重新加载服务端
nohup ./redis-server /root/redis-7.0.8/redis.conf > /dev/null 2>&1 &

- 查看
redis-server的进程号
ps aux | grep redis-server
- 再将原有的带
127.0.0.1:6379的redis连接删除
使用如下命令:
kill -9 25633(替换为具体的进程号)

Step3
- 重新后台启动服务端,加载配置文件,确保配置生效。
nohup ./redis-server /xx/redis-7.0.8/redis.conf > /dev/null 2>&1 &

- 再重新查看一下
redis-server的进程号
ps aux | grep redis-server

Step4
- 重新运行程序,远程连接
redis
成功拿到key和value不报错,远程连接成功!

补充
如果说加载按照上面加载配置文件后,还是不能够远程连接,考虑开放防火墙端口。
1.查看防火墙是否已开启对6379端口的放行
#查看6379/tcp端口是否已开 开为yes 没开为no
firewall-cmd --zone=public --query-port=6379/tcp#查看系统所有开放的端口
firewall-cmd --zone=public --list-ports

no说明没开放
- 如果没放行,通过以下命令放行
6379端口:
#配置防火墙,打开6379端口
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent

- 重新启动防火墙
#重新启动防火墙
sudo systemctl restart firewalld.service

- 再次查询开放是否生效
firewall-cmd --zone=public --query-port=6379/tcp

yes说明开放成功生效!
结语
在现代软件开发中,对于远程访问和操作数据存储的需求变得越来越普遍。通过本文,我们深入探讨了如何利用Golang编写程序实现对Redis数据库的远程连接和操作。我们学习了建立与Redis的连接、进行数据读写操作以及保障远程连接安全性的方法。
通过这些技术,我们可以构建出高效、稳健的远程Redis连接程序,为我们的应用提供可靠的数据支持。无论是缓存、会话管理还是消息队列,Redis都能够为我们的应用提供出色的性能和可伸缩性。
在未来的软件开发中,随着技术的不断发展和需求的不断变化,我们可以继续深入探索更多高级技术和最佳实践,以进一步提升我们的远程连接和操作的效率和安全性。
看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕
往期好文💕
保姆级教程
【保姆级教程】Windows11下go-zero的etcd安装与初步使用
【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero
【Go-Zero】手把手带你在goland中创建api文件并设置高亮
报错解决
【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 报错解决方案及api路由注意事项
【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案
【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案
【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案
【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案
【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案
【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案
Go面试向
【Go面试向】defer与time.sleep初探
【Go面试向】defer与return的执行顺序初探
【Go面试向】Go程序的执行顺序
【Go面试向】rune和byte类型的认识与使用
【Go面试向】实现map稳定的有序遍历的方式
相关文章:
【Redis】构建强韧的远程Redis连接与端口保障机制完美指南
【Redis】构建强韧的远程Redis连接与端口保障机制完美指南 大家好 我是寸铁👊 总结了【Redis】构建强韧的远程Redis连接与端口保障机制完美指南✨ 喜欢的小伙伴可以点点关注 💝 前言 在当今的软件开发领域中,远程访问和操作数据存储是极为常见…...
Flowable项目启动报错#java.time.LocalDateTime cannot be cast to java.lang.String
Flowable 项目启动后报错 flow项目第一次启动创建表成功,但是第二次启动时报错信息如下: 1、Error creating bean with name ‘appRepositoryServiceBean’ defined in class 2、Error creating bean with name ‘flowableAppEngine’: FactoryBean t…...
《数字电路》
问答题4*5 在数字电路中,三极管经常工作在哪两种开关状态? 在数字电路中,三极管经常工作在饱和导通状态和截止状态。 时序电路根据输出信号分为哪两类? 时序电路根据输出信号分为莫尔型和米里型两类。 写出三种以上常用的二-十…...
STM32F103 点亮LED闪烁与仿真
STM32F103 点亮LED闪烁与仿真 今天给大家分享一下STM32 流水灯简单的仿真吧,我感觉这个提供有用的,但是自己也是第一次使用,主要是感觉曲线很高级。在PWM中查看脉宽很有用。 code: led.c #include "led.h" #include "delay…...
阿里云服务器发送邮件失败 Could not connect to SMTP host: smtp.xxx.com, port: 465;
最近做了一个发送邮件的功能, 在本地调试完成后,部署到阿里云服务器就一直报错, Could not connect to SMTP host: smtp.qiye.aliyun.com, port: 465; 网上也搜索了很多的资料,最后花了好几个小时才解决, 报错日志如下…...
Socket编程权威指南(二)完美掌握TCP流式协议及Socket编程的recv()和send()
在上一篇文章中,我们学习了Socket编程的基础知识,包括创建Socket、绑定地址、监听连接、接收连接等操作。然而,真正的套接字编程远不止于此。本文将重点介绍TCP 流式协议,什么是粘包问题?如何解决粘包问题 ?…...
当C++的static遇上了继承
比如我们想要统计下当前类被实例化了多少次,我们通常会这么写 class A { public:A() { Count_; }~A() { Count_--; }int GetCount() { return Count_; }private:static int Count_; };class B { public:B() { Count_; }~B() { Count_--; }int GetCount() { return …...
Three.js中的Raycasting技术:实现3D场景交互事件的Raycaster详解
前言 在Web开发中,Three.js是一个极为强大的库,它让开发者能够轻松地在浏览器中创建和展示3D图形。随着3D技术在网页设计、游戏开发、数据可视化等领域的广泛应用,用户与3D场景的交互变得日益重要。而要实现这种交互,一个核心的技…...
5 分钟内构建一个简单的基于 Python 的 GAN
文章目录 一、说明二、代码三、训练四、后记 一、说明 生成对抗网络(GAN)因其能力而在学术界引起轩然大波。机器能够创作出新颖、富有灵感的作品,这让每个人都感到敬畏和恐惧。因此,人们开始好奇,如何构建一个这样的网…...
智能硬件产品中常用的参数存储和管理方案
一、有哪些参数需要管理? 在智能硬件产品中,一般有三类数据需要存储并管理: 1. 系统设置数据 系统设置数据是指产品自身正常工作所依赖的一些参数。 这类数据的特点:只能在生产过程中修改,出厂后用户无权限修改。 比如:产品SN、产品密钥/token/license、传感器校准值…...
SwiftUI中Mask修饰符的理解与使用
Mask是一种用于控制图形元素可见性的图形技术,使用给定视图的alpha通道掩码该视图。在SwiftUI中,它类似于创建一个只显示视图的特定部分的模板。 Mask修饰符的定义: func mask<Mask>(alignment: Alignment .center,ViewBuilder _ ma…...
全光网络与传统网络架构的对比分析
随着信息技术的飞速发展,网络已经成为我们日常生活中不可或缺的一部分。在这个信息爆炸的时代,全光网络和传统网络架构作为两种主流的网络技术,各有其特点和适用范围。本文将对这两种网络架构进行详细的对比分析,帮助读者更好地了…...
stack overflow复现
当你在内存的栈中,存放了太多元素,就有可能在造成 stack overflow这个问题。 今天看看如何复现这个问题。 下图,是我写的程序,不断的创造1KB的栈,来看看执行了多少次,无限循环。 最后结果是7929kB时, 发…...
mybatis使用笔记
文章目录 打印sql日志mybatis-config.xml方式application.yml里面配置配置类配置方式 其他扫描方式官网文档 mybatis用了那么久,实际一直不明白,做个笔记吧。 打印sql日志 实测,mybatis-config.xml方式好用(记得注掉yml里的相关配置) mybat…...
学习笔记——路由网络基础——路由概述
一、路由概述 1、路由定义与作用 路由(routing)是指导报文转发路径信息,通过路由可以确认转发IP报文的路径。 路由:是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。 路由(routing)的定义是指分…...
在量子计算时代,大数据技术将面临哪些挑战和机遇?
在量子计算时代,大数据技术将面临以下挑战和机遇: 挑战: 处理速度:量子计算机具有极高的计算速度,大数据技术需要适应和充分利用这种速度。现有的大数据算法和架构可能需要重新设计和优化,以充分发挥量子计…...
怎么换自己手机的ip地址
在互联网时代,IP地址已经成为了我们数字身份的一部分。无论是浏览网页、下载文件还是进行在线交流,我们的IP地址都在默默发挥着作用。然而,有时出于安全或隐私保护的考虑,我们可能需要更换手机的IP地址。那么,如何轻松…...
搭建 Langchain-Chatchat 详细过程
前言 本文参考官网和其他多方教程,将搭建 Langchain-Chatchat 的详细步骤进行了整理,供大家参考。 我的硬件 4090 显卡win10 专业版本 搭建环境使用 chatglm2-6b 模型 1. 创建虚拟环境 chatchat ,python 3.9 以上 conda create -n chat…...
C++期末复习
目录 1.基本函数 2.浅拷贝和深拷贝 3.初始化列表 4.const关键字的使用 5.静态成员变量和成员函数 6.C对象模型 7.友元 8.自动类型转换 9.继承 1.基本函数 (1)构造函数,这个需要注意的就是我们如果使用类名加括号,括号里面…...
2005-2022年各省居民人均消费支出数据(无缺失)
2005-2022年各省居民人均消费支出数据(无缺失) 1、时间:2005-2022年 2、来源:国家统计局、统计年鉴 3、指标:全体居民人均消费支出 4、范围:31省 5、缺失情况:无缺失 6、指标解释 居民人…...
手把手调参:在TMS320F28034上实现永磁电机的高功率因数控制(附代码思路)
手把手调参:在TMS320F28034上实现永磁电机的高功率因数控制(附代码思路) 当你在调试一台采用薄膜电容的永磁电机驱动器时,是否遇到过这样的困境:明明按照教科书设计了PWM波形,但实测功率因数始终卡在0.92上…...
OpCore-Simplify:让黑苹果配置从复杂到简单的智能化革命
OpCore-Simplify:让黑苹果配置从复杂到简单的智能化革命 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾为黑苹果(Hac…...
如何快速打造微信风格视频编辑功能?推荐开源神器WeiXinRecordedDemo
如何快速打造微信风格视频编辑功能?推荐开源神器WeiXinRecordedDemo 【免费下载链接】WeiXinRecordedDemo 仿微信视频拍摄UI, 基于ffmpeg的视频录制编辑 项目地址: https://gitcode.com/gh_mirrors/we/WeiXinRecordedDemo WeiXinRecordedDemo是一款基于FFmpe…...
OpenClaw对接Qwen3-32B-Chat私有镜像:RTX4090D本地部署全流程
OpenClaw对接Qwen3-32B-Chat私有镜像:RTX4090D本地部署全流程 1. 为什么选择本地私有化部署? 去年冬天,当我第一次尝试用OpenClaw自动化处理周报时,发现公有云API的响应延迟和隐私顾虑成了瓶颈。直到在星图镜像广场发现Qwen3-32…...
PyTorch 2.8镜像一文详解:CUDA 12.4兼容性、cuDNN版本匹配与驱动升级要点
PyTorch 2.8镜像一文详解:CUDA 12.4兼容性、cuDNN版本匹配与驱动升级要点 1. 镜像概述与核心特性 PyTorch 2.8深度学习镜像是一个专为高性能计算设计的优化环境,基于RTX 4090D 24GB显卡和CUDA 12.4深度调优。这个镜像解决了深度学习开发者经常遇到的环…...
保姆级教程:用命令行实时监控瑞芯微RK3588的CPU/GPU/NPU负载与温度
嵌入式开发实战:构建RK3588芯片全维度性能监控系统 在边缘计算和AI推理场景中,RK3588作为一款高性能SoC,其复杂的多核架构(包括6核CPU、Mali-G610 GPU和6TOPS NPU)对系统监控提出了更高要求。本文将手把手教你搭建一个…...
DeepSeek-OCR-2开发者案例:集成至RAG系统实现图文混合检索增强
DeepSeek-OCR-2开发者案例:集成至RAG系统实现图文混合检索增强 1. 项目背景与需求 最近在做一个智能文档问答系统,客户的需求很明确:他们有很多PDF文档,里面既有文字又有图片,用户提问时,系统要能同时理解…...
矩阵按键的硬件设计与软件扫描实战
1. 矩阵按键的硬件设计要点 第一次接触矩阵按键时,我完全被它节省IO口的设计惊艳到了。想象一下,16个独立按键原本需要16个IO口,而4x4矩阵按键只需要8个IO口就能搞定。这种设计在资源受限的单片机项目中简直就是救命稻草。 硬件连接上有个容易…...
ARMv8、AArch64 与 arm64:命名与体系结构要点
ARMv8、AArch64 与 arm64:命名与体系结构要点 ARMv8 指 ARM 架构的一个主版本代际;AArch64 是该代际下的 64 位执行状态与 A64 指令集;arm64 与 aarch64 是操作系统与工具链中对 AArch64 的常用三元组/目录名,二进制约定一致。下…...
禅修运维法:服务器宕机时集体冥想
当技术危机遇上心灵平静在软件测试领域,服务器宕机是高频挑战,不仅中断测试流程,还引发团队压力。传统运维强调硬件修复和代码调试,但忽略了人的因素——压力下的决策失误往往加剧问题。禅修运维法创新性地将佛教禅修融入IT管理&a…...
