做软件开发的人,会在本机安装很多开发时要用到的软件,比如数据库,有MS SQL Server,MySQL,等,如果每种数据库都按照在本机确实有点乱,这个时候我们就想用虚拟机来隔离,这样就不会扰乱本机一些配置啊环境变量啊等等。但虚机机太耗硬盘了,而且还物理隔离内存,分给它多少内存,本机就少多少内存,对于现在的笔记本电脑,大多都是固态硬盘256G,512G太昂贵了,这个时候Docker 就派上用场了,我把数据库按照Docker容器里,它是进程隔离的,干净又快捷,下面就来介绍一下,在Docker中安装redis内存数据库,并通过C#.Net Core来访问这个数据库。

我的机子是windows 10 pro版的,安装了docker for windows

测试本机docker安装情况=》打开命令行工具,输入docker -v 会显示docker安装的版本,说明正常运行了docker。

查看本机现有容器命令:docker ps

查看本机现有镜像命令:docker images

安装redis镜像命令:docker pull redis //默认从国外镜像站点DockerHub下载,如果下载太慢,可以使用国内镜像,可以访问 https://www.docker-cn.com/registry-mirror 查看如何操作,只有一条命令就可以了。

安装成功的信息:

再次使用docker images查看已有镜像

说明安装redis成功!

接下来要把这个镜像运行起来,就成了一个容器,有人把镜像比喻类,容器是类的实例,这很贴切,记住,镜像是不变的!镜像可以new() 多个容器出来。

运行镜像的命令是:docker run --name first-redis -p 6379:6379 -d redis

命令参数解释:--name firest-redis //给新建的容器命名;-p //映射端口,这样外部访问6379就能访问到容器内的6379端口了;-d redis //这个就是要指定镜像名称

运行结果,并用docker ps查看容器列表

redis数据库已经成功在docker容器中运行了,接下来我们要在数据库里创建一个键值对。

首先进入操作数据库的工具redis-cli。

命令如下:docker exec -it first-redis redis-cli

上面的命令我们利用reids-cli 设置了一个name 的值为 nick,并用 get name 获取这个值,返回“nick”,一切正常。

-------------------------------恶心的分割线-----------------------------------------------------------------------

下面我们来创建C#.Net Core 命令行项目来访问数据库

我们在D盘创建一个文件夹,用来存放我们的代码,直接用命令行操作就可以了。(Ctrl + C可以推出刚才进入redis-cli命令行)

去D盘的看看情况:

接下来,我们使用命令行命令通过VSCode工具打开项目:

命令如下:code .

注意:code 后一个空格加一个点,别丢了。这样就能启动vscode工具打开这个项目了。(会问要不要创建.vscode目录,点是)

接下来要让这个项目和docker中的redis建立关系,就需要安装一个客户端,客户端有很多,可以参考这里https://redis.io/clients#c

回到项目命令行,输入安装StackExchange.Redis的命令

命令如下:dotnet add package StackExchange.Redis

-----------------所有的准备工作都ok了,下面就是要写代码来访问了!------------------------------------------------------

回到命令行运行项目:dotnet run

一切如你所愿。

---------------------------------------------------------

参考地址:https://www.cnblogs.com/cgzl/p/10294175.html

C#.Net Core 操作Docker中的redis数据库的更多相关文章

  1. nopCommerce 3.9 大波浪系列 之 使用部署在Docker中的Redis缓存主从服务

    一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集群. 一般来说,只有一台Redis是不可行的,原因如下: 单台Redis服务器会发 ...

  2. 开发机直连 Docker 中的 Redis 容器小教程

    在笔者日常开发中,都是把redis装在windows系统中.虽然可以通过RedisDesktopManager等客户端工具连接操作redis,但是还是觉得low了一些.因为作为程序员,我可能更想在Li ...

  3. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  4. 从零开始学习docker之在docker中搭建redis(集群)

    docker搭建redis集群 docker-compose是以多容器的方式启动,非常适合用来启动集群 一.环境准备 云环境:CentOS 7.6 64位 二.安装docker-compose #需要 ...

  5. docker中使用mysql数据库详解(在局域网访问)

    开发过程中经常需要安装.调试mysql数据库,还需要在各种操作系上安装包依赖,实在是繁琐,因此就研究了一下如何在docker上运行一个mysql镜像,省却了我安装.找依赖的问题. 注:本文所有内容均在 ...

  6. 在docker中使用mysql数据库,在局域网访问

    1.获取mysql镜像 docker pull mysql:5.6 注意:此处之所以获取mysql5.6是因为mysql5.7在centos7中启动可能会报错 2.查看镜像列表 docker imag ...

  7. 在docker中部署redis主从配置

    环境说明: 阿里云服务器 Ubuntu 16.04 docker 1.拉取Redis镜像 docker pull redis 2.配置Redis启动配置文件,此处我创建一个专用目录,存放Redis相关 ...

  8. docker 中安装 redis

    使用以下命令在Docker Hub搜索Redis镜像docker search redis 使用以下命令拉取镜像,Redis的镜像docker pull redis:latest 使用以下命令查看,本 ...

  9. docker 中运行 redis 服务

    先使用 dockerfile 创建一个 redis 容器 FROM ubuntu:latest RUN apt-get update RUN apt-get -y install redis-serv ...

随机推荐

  1. kbmmw 5.08 正式发布

    欢迎大家围观. Important notes (changes that may break existing code)         ============================= ...

  2. vue 图片下载到本地,图片保存到本地

    必须同源(访问的网站域名与服务器域名一致)才能下载 downs() { var alink = document.createElement("a"); alink.href = ...

  3. Web表现层

    目录 Web表现层调用过程... 2 延迟... 3 什么是延迟... 3 延迟的构成... 3 最基本的优化思路:... 4 Web表现层性能优化... 4 Web性能的基本指标... 4 Web性 ...

  4. Maven 项目 启动时 解决3 字节的 UTF-8 序列的字节 3 无效

    "org.activiti.bpmn.exceptions.XMLException: 3 字节的 UTF-8 序列的字节 3 无效." Maven 项目启动时,由于读XML配置文 ...

  5. 当padding/margin的取值形式为百分比时。。。。。

    一个基础却又容易混淆的css知识点:当margin/padding取形式为百分比的值时,无论是left/right,还是top/bottom,都是以父元素的width为参照物的!也许你会说,left/ ...

  6. hdu 4069 垃圾数独

    首先dfs给每个格子分一个大的区块 其次套板子就a 我一开始直接在选取行的时候填数独,发现超时 我这一行也就4个元素,找到 x <= 81 的列计算元素位置,81 < x <= 16 ...

  7. leetcode第一天-merge two binary trees

    有段时间没有写代码了,脑子都生锈了,今后争取笔耕不辍(立flag,以后打脸) 随机一道Leecode题, Merge Two Binary Trees,题目基本描述如下: Given two bina ...

  8. 自定义Token的CAS登录

    工作中实际遇到的需求,我们有一个旧系统,用了CAS的单点登录,现在有一个外部系统,准备从它那里单点进来,这个外部系统提供了一个token参数来标记这是哪一个用户,我们用他们提供的方式解析出对应的用户, ...

  9. Java中main方法参数String[ ] args的使用。

    我们刚开始学习java时都会被要求记住主方法(main)的写法,就像这样: public static void main(String[] args){ } public static void m ...

  10. Redis-05.主从复制与Sentinel

    主从复制(master/slave) 主机(master)数据更新后根据配置和策略,自动同步到备机(slave).通过主从复制,能够实现读写分离.容灾恢复. 实现主从复制非常简单,只需要在从(slav ...