标签: Redis

  • 大流量活动下钱包提现方案的设计与实现

    大流量活动下钱包提现方案的设计与实现

    本文主要从服务端角度针对 2022 年春节 Flower 活动中钱包提现模块做一下总结与反思,希望可以对整个开发过程中使用的技术和遇到的问题进行整理和沉淀,在后续类似的活动中可以产生一些帮助。

    (更多…)

  • 图文实例解析,InnoDB 存储引擎中行锁的三种算法

    图文实例解析,InnoDB 存储引擎中行锁的三种算法

    前文提到,对于 InnoDB 来说,随时都可以加锁(关于加锁的 SQL 语句这里就不说了,忘记的小伙伴可以翻一下上篇文章),但是并非随时都可以解锁。具体来说,InnoDlinux系统B 采用的是两阶段锁redis持久化定协议(two-phase locking protocol):即在事务执行过程中,mybatis怎么读随时都可以执行加锁操作,但是只有在事务执行 COMMIT 或者 ROLLBACK 的时候才会释放锁,并且所有的锁是在同一时刻被释放。

    (更多…)

  • Docker 入门实战,看这一篇就够了(一)

    Docker 入门实战,看这一篇就够了(一)

    这篇文章主要记录我学习docker的过程,这是第一篇文章,主要是docker的基本概念、安装、常用命令等,希望都能帮助到你~

    一、Docker 概述

    Dock通信行程卡下载apper是用于开发、发布和运行应用程序的开放平台服务器。Docker使您apple能够将应用程序与基础架构分离,从而加快软件交付。使用Docker,您可以像管理应用程序一样管理基础架构。

    Docker 能做什么通信行程卡下载app?

    快速一致地提供应用程序通信日程卡下载app程序阿里

    部署和扩展响应

    在同一个硬件上运行更多工作负载

    Docker 架构

    Docker使用客户机-服务器体系结构。Dockredistributeer Clappleienapp阿里巴巴1688货源批发官网ointmentt与负责构建、运行和部署Doapproachcker容器的Docker Daemon通信。

    Docker  入门实战,看这一篇就够了(一)

    Client:作为负责与Docker D服务器aemon通application信的客户端,用户通过Docker Clinet与Dock Ali员工离职感想er Dae阿里mon进行交互。

    Docker Daemon:服务器端,Doc通信地址是写ker主机的守护程序、接收Docker API请求和管理Dock服务器价格er对象的地址。

    Imag通信工程专业es:镜像是只读模板,包含容器运行时a通信行程卡下载apppprove所需的所有基本文件和配置信息。通信月

    Contain阿里ers:容器、镜像redis中的五种数据类型可以运行实例。

    Registry:这是一个类似于代码仓库的仓库,用于存储和分发通讯员家Docker图像。

    容器与虚拟机的区别?

    容器是应用层的抽象

    span cla阿里巴巴1688货源批发官网ss=”1575″ data-mark=”6hu”>阿里嘎多,它将代码和通信依赖项打包在一起。多个容器可redis集群以在同一台机器服务器系统上运行appearance,并与其他容器共享操作系统内核,每个redis持久化容器在用户空间中作为独通信地址立进程运行。阿里嘎多与 VM 相比,容器占用的空间更少(大小通常为MB级别),占appetite用的资源更少,启动速度也更快,可以运行更多的redis数据结构应用程序阿里巴巴股票

    虚拟机 (VM) 是appetite物理硬件的阿里云抽象,可将一台服务器变成多台服务器。管理apple程序允许多个虚拟阿里拍卖阿里员工离职感言在单台机器上运行。每个 VM 都包含完整的操作系统、应用程序、必要的二进制文件和库等(大小apredistributepreciate通常为GB通信技术级别),占用的资源更多,启动速度也更慢。服务器价格

    二、Dockerredist 安装

    卸载旧版本

    sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine
    

    注意:这里的旧版本是指非 docker-ceredistribute 的版本。

    设置存储服务器内存条可以用在台式机上吗

    sudo yum install -y yum-utils
    sudo yum-config-manager 
        --add-repo 
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    这里使用的阿里云的地址,没有使用官方提approach供的 地址,防止出现无法访问的问题。

    安装 Docker

    安装最新版本的 Docker Engine 和 containerd,执行如服务器地址下命令:

    sudo yum install docker-ce docker-ce-cli containerd.io
    

    如果需要安装指定版本的 Docker Eng服务器怎么搭建ine,可以先列出仓服务器系统库中的可用版本:

    yum list docker-ce --showduplicates | sort -r
    docker-ce.x86_64            3:20.10.9-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:20.10.8-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:20.10.7-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:20.10.6-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:20.10.5-3.el7                     docker-ce-stable
    

    然后选择并安装指定版本:

    sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
    

    其中阿里供应链 <Vapp服务器系统roac服务器hERSION_STRING>20.10.9 这一部分服务器租用

    启动并验证 Docker

    启动 Docredistributeker 引擎:

    systemctl enable docker --now
    

    验证 Docker 版本信息:

    docker version
    Client: Docker Engine - Community
     Version:           20.10.12
     API version:       1.41
     Go version:        go1.16.12
     Git commit:        e91ed57
     Built:             Mon Dec 13 11:45:41 2021
     OS/Arch:           linux/amd64
     Context:           default
     Experimental:      true
    Server: Docker Engine - Community
     Engine:
      Version:          20.10.12
      API version:      1.41 (minimum version 1.12)
      Go version:       go1.16.12
      Git commit:       459d0df
      Built:            Mon Dec 13 11:44:05 2021
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.4.12
      GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5d
     runc:
      Version:          1.0.2
      GitCommit:        v1.0.2-0-g52b36a2
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0
    

    运行 hello-w服务器价格orld 验证 Docker 引擎是否正确安装:

    docker run hello-world
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    2db29710123e: Pull complete 
    Digest: sha256:97a379f4f88575512824f3b352bc03cd75e239179eea0fecc38e597b2209f49a
    Status: Downloaded newer image for hello-world:latest
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
     3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    To try something more ambitious, you can run an Ubuntu container with:
     $ docker run -it ubuntu bash
    Share images, automate workflows, and more with a free Docker ID:
     https://hub.docker.com/
    For more examples and ideas, visit:
     https://docs.docker.com/get-started/
    

    卸载 Do服务器操作系统cker

    卸载 Docker 引擎、CLI 和 Contredis的五种数据类型ainerd 软件包:

    sudo yum remove docker-ce docker-ce-cli containerd.io
    

    主机上的镜像、容器APP、卷服务器内存和台式机内存区别或自定义配置文件不会自动删除。要redist删除所有镜像、容器和卷:

    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    

    阿里云镜像加速

    登录阿里云的 镜像加速器,找到对应的镜像加速器地址进行配置,然后重启服务。

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": [""]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    执行 docker inf通信工程专业o 命令,看到 Regisredis面试题try Mirrors 对应的镜通信人家园像地址正确,则代表配置成功。

    三、Docker 常用命令

    镜像命令

    拉取镜像

    docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    
    # 拉取最新版本镜像
    docker pull tomcat:latest
    
    # 等同 docker pull tomcat:latest
    docker pull tomcat
    
    # 拉取指定版本镜像
    docker pull tomcat:8.5.75
    

    详情redist访问官网:docker pull

    列出镜像

    docker images [OPTIONS] [REPOSITORY[:TAG]]
    
    # 列出本地所有镜像(默认会隐藏中间镜像,可以使用 -a 查看中间镜像)
    docker images
    REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
    tomcat        8.5.75    77cfff2e1fe4   3 days ago     679MB
    tomcat        latest    fb5657adc892   7 weeks ago    680MB
    hello-world   latest    feb5d9fea6a5   4 months ago   13.3kB
    
    # 只显示镜像ID
    docker images -q
    77cfff2e1fe4
    fb5657adc892
    feb5d9fea6a5
    
    • REPOSITORY:镜像仓库名
    • TAG:镜像标签名
    • IMAGE I阿里嘎多D:镜像ID
    • CR通信EATED:镜像创建时间
    • SIZE:镜像大redis数据结构

    详情访问官网:docker im服务器怎么搭建ages

    删除镜像

    docker rmi [OPTIONS] IMAGE [IMAGE...]
    
    # 通过镜像ID删除单个
    docker rmi feb5d9fea6a5
    
    # 通过镜像ID删除多个
    docker rmi feb5d9fea6a5 16ecd2772934
    
    # 通过仓库名:标签名删除
    docker rmi hello-world:latest
    
    # 强制删除(镜像存在容器实例则无法删除,需要强制删除)
    docker rmi -f feb5d9fea6a5
    
    # 删除全部镜像
    docker rmi -f $(docker images -qa)
    

    详情访问官网:docker r阿里众包mi

    容器redis分布式锁命令

    列出容器

    docker ps [OPTIONS]
    
    # 列出运行中容器
    docker ps
    
    # 列出所有容器(已运行 + 未运行)
    docker ps -a
    
    # 只显示容器ID
    docker ps -q
    
    • CONTAINER ID:容器ID
    • IMAredis持久化GredistE:镜像通信
    • COMMAND:执行命令
    • CREATEDredistribute创建时间
    • STATU服务器内存和台式机内存区别S:状态
    • PORTS:端口映射
    • NAMESapproach:容器名

    详情访问官网:服务器docker ps

    新建并启动容器appointment

    docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
    

    在启通信工程专业动容器的时候必须指定是以 后台模式 运行,还是以默认的 前台模式 运行:

    • -d:以后台模式阿里员工离职感言运行容器,并返回容器ID
    • -i:即使未连rediscover接,也要保持 STDIN 打开,通常与 -t 连用
    • -t:分配一个阿里云伪输入终端,通常与 -i 连用
    docker run -it centos
    [root@df1fa6afc492 /]#
    

    执行命令后,可以发现进入了一个新的终端界面,我们可以通通信过这个新的终端界通信大数据行程阿里云盘面执apple行命令,与容器内部进行交互。由于这是一个通信地址前台模式启动的容器,在我们断开远程连接或者执行 exit通信地址是写什么地址 命令之后容器就会停止。

    docker run -d centos
    9c1e6c0e3f6b6bf3e0d9a07006cb38e9d143d2bc7464536eea113ff80d44cc1e
    

    执行命令后,可以阿里拍卖发现只返回了一个容器ID,但是执行 docker ps 命令并没有发现运行中容器,执行 docker ps -a 发现容器已经停appreciate止,这是因为 centos 容器最后执行的命令不会常驻在前appear台,执行完容器就关闭了。

    其他常用参数:

    • –name=”customName”:指定容器名redis缓存
    • -p hostPort:containerPort:指定端口映射
    # 指定容器名称启动
    docker run -d --name="redis01" redis
    
    # 指定容器名称+指定端口映射启动
    docker run -d --name="redis02" -p 6000:6379 redis
    

    详情访问官网:dockredistributeer run

    删除容器

    docker rm [OPTIONS] CONTAINER [CONTAINER...]
    
    # 删除镜像
    docker rm 170cd1689660
    
    # 强制删除(镜像运行中只能强制删除)
    docker rm -f 170cd1689660
    
    # 删除全部
    docker rm -f $(docker ps -aq)
    

    详情访问官网:docker rm

    容器状态管理

    # 启动容器
    docker start [OPTIONS] CONTAINER [CONTAINER...]
    
    # 停止容器
    docker stop [OPTIONS] CONTAINER [CONTAINER...]
    
    # 重启容器
    docker restart [OPTIONS] CONTAINER [CONTAINER...]
    
    # 强制停止容器
    docker kill [OPTIONS] CONTAINER [CONTAINER...]
    

    通信地址是写什么地址情访问官网:docker start、docker stop、docapplicationker restart、docker kill、

    导入导出容器

    docker export [OPTIONS] CONTAINER
    docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
    
    # 导出容器
    docker export 2d1444c6d626 > mycentos.tar
    
    # 导入容器
    docker import mycentos.tar mycentos:1.0.0
    

    详情访问官网:d通信人家园ock阿里拍卖er export、Redisdoc服务器ker import

    容器文件复制

    docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
    docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
    
    # 从宿主机复制到容器
    docker cp /tmp/centos.txt 80772c7abcb7:/tmp
    
    # 从容器复制到宿主机
    docker cp 80772c7abcb7:/tmp/docker.txt /tmp
    

    详情访问官网:docker cp

    进入redis分布式锁容器

    docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    docker attach [OPTIONS] CONTAINER
    
    # 进入容器,并开启一个新的终端,可以用 exit 退出
    docker exec -it 80772c7abcb7 /bin/bash
    
    # 直接进入容器,使用 exit 会退出容器本身
    docker attach 80772c7abcb7
    

    详情访问官网:docker exec、docker attach

    查看容器信息

    docker logs [OPTIONS] CONTAINER
    docker top CONTAINER [ps OPTIONS]
    docker inspect [OPTIONS] NAME|ID [NAME|ID...]
    
    # 查看容器日志
    docker logs 80772c7abcb7
    
    # 查看容器内运行的进程
    docker top 80772c7abcb7
    
    # 查看容器的元数据
    docker inspect 80772c7abcb7
    

    详情访问官网:dockerapple logs、docker top、docker inspect

    四、Docker 镜像与容器

    镜像

    镜像,它包含了容器运行时所需要的所有基础文件和配置信息,是一个只读的模板。服务器地址

    镜像是由一系列的镜像层(layer)组成,每一层代表了镜像构建过程Redis中的一次提交,当我们需要修改镜像内的某个文件时,appearance只需要redis持久化在当前镜像层的基础上新建一个镜像层,并且只存放修改过的文件内容。

    分层的结构通信技术使得 Docker 镜像非常轻量,每一层根据镜像的内容redis集群都有一redis缓存通信行程卡唯一的 I通信工程D 值,当不同的镜像之间有相同的镜像层时,便可以实现不同的镜像之间共通信行程卡享镜像层的效果。阿里巴巴股票

    Docker 镜像是静态的分层管理的文件组合,镜像底层的实现依赖于联合文件系统(Unio服务器租用nredis面阿里巴巴批发网官网试题FS)。

    容器

    容器是基于镜像创建的可运行实例Redis,并且单服务器独存在,一个镜像阿里供应链可以创建出多个容器。

    Doappearcker 镜像层都是只读的,容器服务器价格层是可写的,当容器启动时,一个新的可写层被加载到镜像的顶部,这一层通常被称作 容器层,容器层之下的都叫 镜像层

    提交镜像

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    
    # 将容器提交为镜像
    docker commit 0571cbee88da mycentos:1.0.1
    

    阿里众包情访问官网:dock阿里云er服务器系统 commit

    重命名镜像

    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    
    # 重命名镜像
    docker tag mycentos:1.0.1 mycentos:1.0.2
    

    这个时阿里巴巴批发网官网候会发现同一个镜像 ID 指向了两个不同的 TAG,只需要根据 镜像仓库名:标签名 删除旧的 TAG 即可。

    详情访问官网:docker tag

  • 灵感乍现!造了个与众不同的Dubbo注册中心扩展轮子

    灵感乍现!造了个与众不同的Dubbo注册中心扩展轮子

    一起养成写作习惯!这是我参与「日新计划 4 月更文挑战」的第4天,点击查看活动详情。

    (更多…)

  • Sentinel 滑动窗口限流实现解析

    Sentinel 滑动窗口限流实现解析

    Sentinel 滑动窗口限流实现解析

    Sentinel 滑动窗口限流实现解析

    Sentinel 是面向分布式服务框架的轻量级流量控制框架,主要以流量为切入点,从流量控制,熔断降级,系统负载保护等多个维度来维护系统的稳定性。

    (更多…)
  • 颜值爆表!Redis官方可视化工具来啦,功能真心强大!

    颜值爆表!Redis官方可视化工具来啦,功能真心强大!

    最近逛了一下Redis官方网站,发现Redis不仅推出了很多新特性,而且还发布了一款可视化工具RedisInsight。试用了一下感觉非常不错,最关键的是能支持redis哨兵模式RedisJSON之类的新特性,这是第三方工具无法比拟的。今天带大家体验一git命令RedisInsight,确实非常好用!

    (更多…)

  • 使用MQ的时候,怎么确保消息100%不丢失?

    使用MQ的时候,怎么确保消息100%不丢失?

    面试官在面试候选人时,如果发现候选人的简历中写了在项目中使用了 MQ 技术(如 Kafka、RabbitMQ、RocketMQ),基本都会线程数越多越好吗抛出一个问题:在使用 MQ 的时数据库候,怎么确保消息 100% 不丢失?

    (更多…)