zoukankan      html  css  js  c++  java
  • 第二章、Redis入门介绍


    一、入门概述

    1.1、什么是 Redis ?
    • REmote DIctionary Server(远程字典服务器)。
    • 开源、C语言编写、遵守 BSD 协议、高性能的分布式内存数据库。也被称为数据结构服务器。
    • 与其他 key-value 数据库相比:
      • 支持持久化。
      • 提供 key-value 之外的数据类型存储。
      • 支持数据备份(master-slave 主从复制模式)。
    1.2、学习重点

    学习内容
    1、数据类型、基本操作和配置。
    2、持久化和复制、RDB/AODF
    3、事务的控制、管道、分布式锁和Lua脚本
    4、主从复制
    5、。。。

    二、Redis 安装

    2.1、Docker 安装 Redis 并以配置文件方式启动

    参考文章

    • 1、配置 redis.config 文件
    • 2、启动并创建 docker redis 容器。
    • 3、dockerfile 挂载数据卷创建单机 Redis 实例详情见 docker 学习笔记
    docker run -d --privileged=true -p 6379:6379 -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/redis/data:/data --name myredis redis redis-server /etc/redis/redis.conf --appendonly yes

    命令参数解释:
    1、-p 6379:6379 端口映射。:前表示主机部分,:后表示容器部分。
    2、--name myredis 指定该容器名称,查看和进行操作都比较方便。
    3、-v 挂载目录,规则与端口映射相同。
    为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
    4、-d redis 表示后台启动 redis,redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的 conf 文件,最终找到的是挂载的目录 /usr/local/docker/redis/redis.conf。
    5、--appendonly yes 开启 redis 持久化。

    注意:redis.conf 文件中的配置,如果不能正确启动,可使用 docker logs 容器名称 来查询错误信息。

    2.2、创建并运行单机 Redis 实例

    redis 单机启动实例:

    #1、创建文件夹

    mkdir redisSingle-6379
    #2、复制 redis.conf 到 redisSingle-6379 文件夹下

    cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis-cluster/redisSingle-6379

    #3、启动
    /usr/local/redis-3.0.0/src/redis-server /usr/local/redis-cluster/redisSingle-6379/redis.conf


    三、Redis 启动后杂项基础知识讲解

    • 单进程

      1、单进程模型来处理客户端的请求。对读写等事件的响应是通过对 epoll 函数的包装来做到的。Redis 的实际处理速度完全依靠主进程的执行效率。

      2、epoll 是 Linux 内核为处理大批量文件描述符而作了改进的 epoll,是 Linux 下多路复用 IO 接口select/poll 的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统 CPU 利用率。

    • 默认数据库

      默认16个数据库,类似数组下表从零开始,初始默认使用零号库。

      设置数据库的数量,默认数据库为0,可以使用 SELECT 命令在连接上指定数据库 id。

    • 查看当前数据库 key 的数量

      dbsize 查看当前数据库的 key 的数量。

    • 清空数据库、通杀数据库

      flushdb:清空当前库

      Flushall;通杀全部库

    • 统一密码管理,16个库都是同样密码,要么都 OK 要么一个也连接不上。

    • Redis 索引都是从零开始。

  • 相关阅读:
    内存分配方式与变量的生存周期【转】
    C++动态内存创建与内存管理学习笔记【转】
    C内存分配问题(内存达人请进)【转】
    Singular Value Decomposition(SVD)奇异值分解【转】
    Euclidean space欧几里得空间【转】
    C语言面试题汇总(华为公司) 【转】
    C语言内存分配问题和C语言中的内存【转】
    iPhone无法在Mac的Finder中显示?如何解决问题
    OGRE 入门 三、Basic Tutorial 2 : Cameras, Lights, and Shadows
    leetcode 一个算法面试题相关的网站
  • 原文地址:https://www.cnblogs.com/pengguozhen/p/13396703.html
Copyright © 2011-2022 走看看