Redis学习笔记(二)——如何在Docker下安装Redis并设置自启动

Redis

1、概念

  1. Redis:REmote DIctionary Server(远程字典服务器)

    完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,也被称为数据结构服务器

  2. 特点:

    Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

    Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

    Redis支持数据的备份,即master-slave模式的数据备份。

  3. 作用:

    内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务

    取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面

    模拟类似于HttpSession这种需要设定过期时间的功能

    发布、订阅消息系统

    定时器、计数器

2、Redis安装

  1. 安装Linux虚拟机

    • 开启CPU虚拟化(BIOS中操作,百度教程)

    • 下载安装VirtualBoxwww.virtualbox.org

    • 下载安装Vagrant

      • vagrant官方镜像仓库https://app.vagrantup.com/boxes/search
      • vagrant下载https://www.vagrantup.com/downloads
      • 安装完成后在cmd中输入vagrant验证
    • 打开Windows cmd,运行Vagrant init centos/7,即可初始化一个centos7系统

    • 初始化完成后在C:\Users\29518下出现Vagrantfile文件

    • 运行vagrant up即可启动虚拟机,系统root用户的密码是vagrant

    • vagrant其他常用命令

      • vagrant ssh:在Windows下cmd中使用该命令自动使用vagrant用户连接虚拟机。
    • 默认虚拟机IP地址不是固定IP,开发不方便。

      • 传统解决方式:

        端口转发

        修改虚拟机网关

      • 修改Vagrantfile

        config.vm.network “private_network”, ip: “192.168.56.10” 此处IP使用cmd输入ipconfig查看,最后两位需要更改。

        修改完成后使用 vagront reload重新启动虚拟机。

        使用ping命令查看是否互通

    • 使用su root切换root用户,密码默认vagrant

    • 注意:VirtualBox会与红蜘蛛、360、净网大师有冲突,需要卸载这些软件然后重启电脑。

  2. 安装Docker

    • 虚拟化容器技术。基于镜像,可以秒级启动各种容器,每种容器都是一个完整的运行环境,容器之间互相隔离。docker下载各种服务镜像的网站https://hub.docker.com/

    • 进入docker官网的安装文档按照步骤安装https://docs.docker.com/engine/install/centos/

    • 启动dockersudo systemctl start docker

    • 开机自启动sudo systemctl enable docker

    • 查看镜像sudo docker images

    • docker配置镜像加速

      sudo mkdir -p /etc/docker
      sudo tee /etc/docker/daemon.json <<-'EOF'
      {
        "registry-mirrors": ["https://sr04wavx.mirror.aliyuncs.com"]
      }
      EOF
      sudo systemctl daemon-reload
      sudo systemctl restart docker
      
  3. Docker中安装Redis

    • 下载镜像文件

      sudo docker pull redis默认下载最新

    • 创建实例并启动

      mkdir -p /mydata/redis/conf
      touch /mydata/redis/conf/redis.conf
      
      docker run -p 6379:6379 --name redis \
      -v /mydata/redis/data:/data \
      -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
      -d redis redis-server /etc/redis/redis.conf
      
    • 参数说明

      • 将容器6379端口映射到主机6379端口,–name即给容器起名。
      • 将容器中各种文件夹挂载到主机Linux文件夹下,后面修改配置文件不需要进入容器内部对应文件夹直接在主机Linux下对应目录更改(类似于快捷方式)。冒号前面是主机Linux对应目录,冒号后面对应容器中对应目录。
      • 初始化root用户密码。
    • docker ps查看正在运行的容器,每个运行的容器相当于一个Linux。(注意:使用sudo)

    • 查看镜像sudo docker images

    • docker start redis运行容器

    • 修改配置文件redis.conf,加入appendonly yes,持久化操作,即重启Redis后存储的键值对也能保存。

    • docker exec -it redis redis-cli执行redis-cli连接,即进入redis操作。

    • 安装redis可视化界面Redis Desktop Manager

    • docker update redis --restart=always 设置redis镜像自动启动

3、基础知识

  1. 单进程

    • 单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率。
    • epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
  2. 数据库数量

    • 默认16个数据库,类似数组下表从零开始,初始默认使用零号库
    • 设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id databases 16
  3. 常用命令

    • select:命令切换数据库
    • dbsize:查看当前数据库的key的数量
    • flushdb:清空当前库
    • Flushall:通杀全部库
  4. 统一密码管理:16个库都是同样密码

  5. Redis索引都是从零开始,默认端口是6379

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值