知识补充:基于Docker的Redis的基本使用方法

Redis简介

Redis(Remote Dictionary Server)是由Salvatore Sanfilippo开发的key-value(键值对)存储系统。

对比传统数据库与NoSQL数据库

传统数据库(关系型数据库)

NoSQL
代表 MySQL、Oracle、SQL Server Redis、MongoDB
数据结构 以“表”的形式(表结构具有严格的数据模式约束) 使用比较简单的数据结构(比如Redis用的是键值对)
物理位置 存储在硬盘上(常规情况) 存储在内存中(支持持久化到磁盘)
适用场景 存储大规模的数据 数据量小但对性能有一定要求

根据业内的项目实践经验,Redis主要具有如下优点:

  1. 由于数据是存储在内存中的,因此查找数据的速度比较快。
  2. 支持的数据类型比较多,比如支持字符串、列表和哈希表等。
  3. 可以支持事务,同时支持数据的持久化,即能把内存中的数据存入硬盘。

不过,Redis也有一些缺点:

  1. Redis难以支持在线扩容,尤其是在集群场景里,当存储容量达到上限后,在线扩容会非常困难。
  2. Redis是基于内存的,如果短时间内存入大量数据,可能会导致内存问题,比如会出现OOM(内存溢出)异常。
  3. Redis工作时是基于单线程的,所以无法充分利用多核机器里的CPU。

在项目里,基于Redis的优缺点,一般会将它用在缓存、秒杀、计数器和排行榜等和性能密切相关的场景里(且更适合以分布式集群的方式提供服务)。

Docker简介

Docker的三个概念:仓库、镜像、容器

  • 仓库:代码中心,可以在本地,也可以在远端,能够存储镜像。
  • 镜像:静态的。
  • 容器:镜像运行时的实体(由类实例化而成的对象)。

开发意义上的Docker包含Docker软件和Docker命令。

Docker官网:https://www.docker.com/

查看安装版本(命令行):docker version

查看本地镜像:docker images

扫描二维码关注公众号,回复: 15949009 查看本文章

下载镜像:docker pull 镜像名:标签(如果不指定标签,默认为latest,即最新版本)

删除镜像:docker rmi 镜像名:标签  或  docker rmi 镜像ID

运行镜像:docker run -it 镜像名:标签 /bin/bash

(-it表示在终端交互式操作,/bin/bash表示容器启动后需要执行的命令,这里是启动shell)

查看当前所有容器:docker ps -a(默认只返回处于Up状态的容器,带参数-a才能显示全部)

删除容器:docker rm 容器ID

运行Redis镜像:docker run -itd --name myFirstRedis -p 6379:6379 redis:lastest

-it在终端交互式操作

d表示在后台运行

--name指定该容器的名字

-p指定容器的6379端口映射到宿主机(运行Docker的机器)的6379端口(这样就能在容器外部以宿主机ip:6379的方式来访问Redis服务)

(名为myFirstRedis的容器处于Up状态,并且通过6379端口对外提供服务)

查看Redis启动效果:docker logs myFirstRedis

通过docker exec进入Redis容器:docker exec -it myFirstRedis /bin/bash

(docker exec表示在运行容器中执行命令,/bin/bash表示具体要执行的命令,这里是打开shell)

 (进入了名为myFirstRedis的容器,该容器基于Linux操作系统。再通过redis-cli命令创建一个客户端——连接到容器里的Redis服务器,随后通过set命令创建一个值为Hugo的name变量,再通过get命令来获取name变量的值)

 (通过两次exit回到Windows命令行。第一次退出的是用redis-cli进入的Redis运行窗口,第二次退出的是用docker exec命令进入的Linux容器)

停止容器:docker stop myFirstRedis(注意:停止的是容器,而不是Redis服务)

重启容器:docker start myFirstRedis 或 docker restart myFirstRedis

(区别:直接docker restart不会挂载容器所关联的文件系统,也就是说不一定会加载到更改后的配置项参数。所以建议先docker stop,再docker start)

查看Redis的版本

开启容器,进入容器的shell

查看Redis服务器的版本:redis-server --version

查看Redis客户端的版本:redis-cli --version


完整流程梳理:

  1. 安装Docker软件
  2. 在命令行中输入docker pull redis下载最新的Redis镜像
  3. 输入docker images来确认镜像
  4. 输入docker run -itd --name myFirstRedis -p 6379:6379 redis:latest,根据镜像来创建并运行一个容器
  5. 输入docker ps -a查看对应的创建好的容器
  6. 输入docker stop myFirstRedis让容器进入Exited状态
  7. 输入docker rm myFtrstRedis删除容器(删除前必须确保Exited状态)
  8. 输入docker start myFirstRedis启动处于Exited状态的容器
  9. 在创建并启动容器后,可以通过docker logs myFirstRedis查看该容器里Redis服务器的启动情况
  10. 也可以通过docker exec -it myFirstRedis /bin/bash进入容器并启动shell
  11. 启动shell之后可以通过redis-cli创建一个连接到Redis服务器的客户端(继而通过客户端执行各种Redis命令,比如exit退出命令)
  12. 需要重启容器的话,建议先docker stop myFirstRedis,再docker start myFirstRedis来实现
  13. 需要停止Redis服务器的话,先通过redis-cli命令连接到服务器,再输入shutdown来实现

归纳图


<完> 

猜你喜欢

转载自blog.csdn.net/weixin_58695100/article/details/122918026