使用其他Docker容器访问Redis的Docker容器

完整过程

1、拉取Redis数据库,可以通过网上的教程完成。推荐下面的网站视频,可以借鉴学习。

使用docker搭建redis服务(单点)_哔哩哔哩_bilibili使用docker搭建redis服务(单点), 视频播放量 1711、弹幕量 1、点赞数 7、投硬币枚数 4、收藏人数 12、转发人数 1, 视频作者 程序猿辅导, 作者简介 坚持用爱发电,相关视频:【GeekHour】30分钟Docker入门教程,docker回顾串一串,漂亮全能的 Nas 导航页 Homarr —— 群晖 Unraid Docker 51,开源项目蘑菇博客后台管理系统前端工程之面包屑导航,Docker部署ssh连接工具webssh2,Docker部署Gitblit服务器,2. 用pandas读取数据,Docker部署轻量级web服务器lighthttpd,jupyterlab安装与介绍,傻瓜式操作,实现Rancher平台应用的快速上手!驾驭Docker的一切,让你的应用游刃有余!!(镜像/容器/服务/云原生/集群/kubernetes)https://www.bilibili.com/video/BV1kt4y157oi/2、在想要访问此Redis的其他Docker容器中安装Redis-plus-plus,官网如下:
GitHub - sewenew/redis-plus-plus:用C++编写的 Redis 客户端icon-default.png?t=N5K3https://github.com/sewenew/redis-plus-plus

3、在安装好Redis的Docker中,编写如下C++程序,也用了部分C:

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <hiredis/hiredis.h>

int main() {
    redisContext* conn = redisConnect("172.17.0.2", 6379);
    if (conn->err) {
        printf("Connection error: %s\n", conn->errstr);
        redisFree(conn);
        return 1;
    }

    redisCommand(conn, "set foo 123");

    redisReply* reply = (redisReply*)redisCommand(conn, "get foo");
    if (reply == NULL) {
        printf("Failed to execute Redis command\n");
        redisFree(conn);
        return 1;
    }

    if (reply->type == REDIS_REPLY_STRING) {
        printf("Value of 'foo': %s\n", reply->str);
    } else {
        printf("Key 'foo' does not exist\n");
    }

    freeReplyObject(reply);
    redisFree(conn);
    return 0;
}

 4、使用如下命令编译生成可执行文件,后面必须加上链接库。

g++ test3.cpp -o test3 -lhiredis

期间出现的问题记录

1、创建Redis容器,可以直接在镜像生成Docker时写上映射端口:

docker run --name my-redis -p 6389:6379 -d reids

-p为建立端口映射,前面为主机端口,后面为Redis容器的端口。

2、从外部(主机或者其他Docker)连接Redis数据库时,使用一下命令,可在redis-cli客户端交互命令行连接到Redis数据库。【IP为Redis容器的地址】

connect 172.17.0.2 6389

3、最重要一点!!!千万不要安装多个版本的hiredis!!!apt安装和源代码安装只能选择一款!!!建议使用源代码安装!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一棵纯白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值