【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)

简介: 【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)

问题描述

在Azure Redis的官方文档中,介绍了在Windows下,如何通过redis-cli.exe连接Redis, 包含如何配置stunnel使得通过 6380,SSL方式连接到Redis Cache。引用原文内容如下:

为 redis-cli.exe 启用访问权限

使用 Azure Cache for Redis 时,默认情况下仅启用 TLS 端口 (6380)。 redis-cli.exe 命令行工具不支持 TLS。 可通过两种配置方式使用该命令行工具:

  1. 启用非 TLS 端口 (6379) - 不建议采用此配置,因为在此配置中,系统通过 TCP 以明文形式发送访问密钥 。 这种更改可能会影响对缓存的访问。 仅当访问测试缓存时才考虑选择此配置。
  2. 下载并安装 stunnel
    运行 stunnel GUI Start 以启动服务器 。
    右键单击 stunnel 服务器的任务栏图标,然后单击“显示日志窗口” 。
    在 stunnel“日志窗口”菜单上,单击“配置” > “编辑配置”,打开当前配置文件 。
    在“服务定义”部分下向 redis-cli.exe 添加以下项 。 yourcachename 替换为实际缓存名称。

[redis-cli]

client = yes

accept = 127.0.0.1:6380

connect = yourcachename.redis.cache.chinacloudapi.cn:6380

  1. 保存并关闭配置文件。
    在 stunnel“日志窗口”菜单中,单击“配置” > “重新加载配置” 。

 

本文面临的情况为: 使用Linux VM 如何连接到Azure Redis, 通过SSL方式(6380)或非SSL方式(6379)

 

准备条件

  • Azure Redis
  • Linux VM
  • redis-cli
  • stunnel4

 

操作步骤

第一步:安装Redis-cli

sudo apt-get update
sudo apt-get install redis-tools

注:redis-tools 中包含了redis-cli工具及其他reids工具

 

第二步:安装stunnel4

因为redis-cli.exe 工具不支持 TLS(通过6380端口连接),所以使用stunnel 来连接到Redis的6380端口. 当前使用的是第4版本的stunnel,在Linux中的安装命令如下:

sudo apt-get install stunnel4

注意:

如果要使用非SSL端口6379运行Redis,在这种情况下,您无需使用stunnel,并且可以在Azure Redis缓存中开启非SSL端口的情况下直接使用以下命令进行访问:

redis-cli -p 6379 -a <access key> -h <yourcachename.redis.cache.chinacloudapi.cn>

 

第三步:开启Stunnel服务,在VM启动时自动启动

修改/etc/default/stunnel4配置文件,修改文件中ENABLED的值为1。使用nano编辑文件,命令为:

sudo nano /etc/default/stunnel4

通过键盘方向键移动到下图箭头处,修改ENABLED为1后,使用CRTL + X后,输入Y,来保存当前的修改。然后回车回到Linux命令窗口。

第四步:在stunnel中添加redis-cli的配置项

在Stunnel中添加redis的配置文件,使用如下命令添加文件并且在文件中配置Redis-cli的链接信息

sudo nano /etc/stunnel/redis.conf

打开文件后,输入配置内容:

[redis-cli]
client = yes
accept = 127.0.0.1:6380
connect = yourredisname.redis.cache.chinacloudapi.cn:6380

使用CTRL + X, 输入Y,回车保存

 

第五步:重启Stunnel服务,加载Redis配置,使用命令为

sudo systemctl restart stunnel4.service

第六步:检查stunnel是否已经监听6380端口,使用命令

sudo netstat -plunt

 

第七步:使用Redis-cli通过6380(SSL方式)连接到Redis,连接命令

redis-cli -p 6380 -a <your redis access key>  

此时,就可以看见连接成功并开始管理Redis。

 

[以上,希望对您有所帮助。]

 

排查连接错误

在连接到Redis的时候,如果遇见连接错误,如何来检查Redis的网络情况及端口是否正常ping通。可以使用以下方式。

一:使用telnet 命令,连接到Redis

telnet yourredisname.redis.cache.chinacloudapi.cn port

如:

 

 

二:使用tcpping命令长ping redis服务,查看网络情况

由于TCPPING命令需要在Linux中安装。命令如下:

####To install tcptraceroute on Debian/Ubuntu:
$ sudo apt-get install tcptraceroute
####To install tcptraceroute on CentOS/REHL, first set up RepoForge on your system, and then:
$ sudo yum install tcptraceroute
####Finally, download tcpping from the web.
$ cd /usr/bin
$ sudo wget http://www.vdberg.org/~richard/tcpping
$ sudo chmod 755 tcpping
####To measure network latency by using tcpping, simply run it as follows.
$ tcpping yourredisname.redis.cache.chinacloudapi.cn 6379
seq 0: tcp response from 139.219.6.4 [open] 31.382 ms
seq 1: tcp response from 139.219.6.4 [open] 26.407 ms
seq 2: tcp response from 139.219.6.4 [open] 34.900 ms
seq 3: tcp response from 139.219.6.4 [open] 38.130 ms
seq 4: tcp response from 139.219.6.4 [open] 37.641 ms
seq 5: tcp response from 139.219.6.4 [open] 29.953 ms
seq 6: tcp response from 139.219.6.4 [open] 31.179 ms
seq 7: tcp response from 139.219.6.4 [open] 26.353 ms
seq 8: tcp response from 139.219.6.4 [open] 24.195 ms
seq 9: tcp response from 139.219.6.4 [open] 29.222 ms

 

参考资料:

使用 Redis 命令行工具进行连接: https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-redis-cli-tool#enable-access-for-redis-cliexe

Connect to Azure Cache for Redis using SSL Port 6380 from Linux VM: https://techcommunity.microsoft.com/t5/azure-paas-blog/connect-to-azure-cache-for-redis-using-ssl-port-6380-from-linux/ba-p/1186109

How to install tcpping on Linux : https://gist.github.com/cnDelbert/5fb06ccf10c19dbce3a7

相关文章
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
10月前
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
911 25
|
11月前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
404 1
Redis专题-实战篇二-商户查询缓存
|
10月前
|
缓存 运维 监控
Redis 7.0 高性能缓存架构设计与优化
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Redis 7.0高性能缓存架构,探索函数化编程、多层缓存、集群优化与分片消息系统,用代码在二进制星河中谱写极客诗篇。
1821 3
|
11月前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。
|
安全 网络协议 Linux
Linux查 ssh端口号和服务状态
本指南详细介绍如何检查SSH服务的运行状态,包括通过进程命令验证服务启动、查看监听端口、检测系统服务状态以及防火墙配置。同时提供安全建议,如修改默认端口、禁用密码登录和定期更新系统,确保SSH服务稳定与安全。适用于不同Linux发行版(Systemd/SysVinit),帮助用户全面排查和优化SSH配置。
|
Linux 网络安全 数据安全/隐私保护
|
11月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
1047 1
二、Linux文本处理与文件操作核心命令
|
11月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
690 137
|
11月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
1646 58