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

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

时间:2022-11-14 17:00:12浏览次数:71  
标签:cli Redis redis stunnel 6.4 6380 Azure


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

本文介绍使用Linux VM 如何连接到Azure Redis, 通过SSL方式(6380)或非SSL方式(6379)


问题描述

在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

保存并关闭配置文件。

在 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工具

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

 

第二步:安装stunnel4

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

sudo apt-get install stunnel4

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

注意:

如果要使用非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命令窗口。

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

第四步:在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,回车保存

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

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

sudo systemctl restart stunnel4.service

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

sudo netstat -plunt

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

 

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

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

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

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

 

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

 

排查连接错误

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

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

telnet yourredisname.redis.cache.chinacloudapi.cn port

如:

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

 

 

二:使用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​

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!



标签:cli,Redis,redis,stunnel,6.4,6380,Azure
From: https://blog.51cto.com/u_13773780/5849571

相关文章

  • luffy之短信注册接口和登入和注册前端和redis
    一、短信注册接口#注册前端就只有一个短信注册那么接收的就只需要接收三个参数即可mobile,password,code#视图类classUserView(ViewSet):@action(meth......
  • 一口气说出 Redis 16 个常见使用场景
    目录缓存数据共享分布式分布式锁全局ID计数器限流位统计购物车用户消息时间线timeline消息队列抽奖点赞、签到、打卡商品标签商品筛选用户关注、推荐模型排行榜1、缓存Strin......
  • golang redis队列实现
    记录一下packageredisimport("bytes""encoding/json""errors")typeJobstruct{JobIdstring`json:"job_id"`Uiduint64`json:"uid"`......
  • Nodejs+Redis实现简易消息队列
    前言消息队列是存储数据的一个中间件,可以理解为一个容器。生产者生产消息投递到队列中,消费者可以拉取消息进行消费,如果消费者目前没有消费的打算,则消息队列会保留消息,直......
  • 一些网络编程方面的总结,以及redis、memcache、nginx组件的一些介绍
    网络编程主要关注的一些问题主要关注3个方面的问题连接的建立连接的断开消息的发送和到达连接的建立主要分为两种情况:服务器处理接受客户端的连接;服务端作为客户......
  • docker 搭建redis 集群
    一、创建6个redis节点的配置文件bind0.0.0.0port6381databases1save36001save300100save6010000dbfilenamedump6381.rdbdir./appendonlyyesa......
  • 阿里开源 Redis 数据迁移工具
    今天要推荐一个阿里巴巴开源工具redis-shake,一个Redis的数据迁移和清洗工具,工具使用起来比较简单,也经历过大厂的认证,正确性和稳定性都有保障。 Redis实例迁移到另一......
  • 【Azure Redis 缓存】Redis 连接失败
    问题描述AzureRedis出现连接失败,过一会儿后,又能自动恢复。 问题解答其实,因为AzureRedis服务一直都有升级维护的操作(平均每月一次),Redis服务更新是平台自动进行的......
  • Docker部署Redis
    1.拉取redis镜像dockerpullredis:latest2.运行docker容器     dockerrun-p6379:6379 \    -v/mydata/redis/data:/data \     -v/mydat......
  • docker部署redis
    1、问题描述docker部署redis,记录下。2、问题说明2.1、搜索redis,可跳过dockersearchredis2.2获取docker镜像dockerpullredis2.3构建容器前准备工作,挂载文件......