完整过程
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 客户端https://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安装和源代码安装只能选择一款!!!建议使用源代码安装!!!