• Redis6(一)——NoSQL数据库简介与Redis的安装


    目录

    NoSQL数据库简介

    概述与安装

    概述

    应用场景

    安装

    Redis介绍相关知识


    NoSQL数据库简介

            redis是一个key-value1存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

            Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

    解决CPU及内存压力

    解决IO压力

    NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库

            NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。

    1. 不遵循SQL标准。
    2. 不支持ACID。
    3. 远超于SQL的性能。

    适用场景:

    1. 对数据高并发的读写
    2. 海量数据的读写
    3. 对数据高可扩展性的

    不适用场景:

    1. 需要事务支持
    2. 基于sql的结构化查询存储,处理复杂的关系,需要即席查询。
    3. (用不着sql的和用了sql也不行的情况,请考虑用NoSql

    概述与安装

    概述

    • Redis是一个开源key-value存储系统。
    • 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
    • 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
    • 在此基础上,Redis支持各种不同方式的排序
    • 与memcached一样,为了保证效率,数据都是缓存在内存中。
    • 区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
    • 并且在此基础上实现了master-slave(主从)同步。

    应用场景

    配合关系型数据库做高速缓存

    • 高频次,热门访问的数据,降低数据库IO
    • 分布式架构,做session共享

    多样的数据结构存储持久化数据

    安装

    先上传到linux服务器当中

    安装C 语言的编译环境

    yum install centos-release-scl scl-utils-build

    yum install -y devtoolset-8-toolchain

    scl enable devtoolset-8 bash

    测试gcc版本:gcc --version

    1. 下载redis-6.2.1.tar.gz放/opt目录
    2. 解压命令:tar -zxvf redis-6.2.1.tar.gz
    3. 解压完成后进入目录:cd redis-6.2.1
    4. 在redis-6.2.1目录下再次执行make命令(只是编译好)
    5. 如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件

    解决方案:运行make distclean

    ​​​​​​​在redis-6.2.1目录下再次执行make命令(只是编译好)

    ​​​​​​​跳过make test 继续执行: make install

    ​​​​​​​安装目录:/usr/local/bin

    查看默认安装目录:

    redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何

    redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲

    redis-check-dump:修复有问题的dump.rdb文件

    redis-sentinel:Redis集群使用

    redis-server:Redis服务器启动命令

    redis-cli:客户端,操作入口

    前台启动

    前台启动,命令行窗口不能关闭,否则服务器停止(不推荐)

    后台启动(推荐

    备份redis.conf

    拷贝一份redis.conf到其他目录

    cp  /opt/redis-3.2.5/redis.conf  /myredis

    ​​​​​​​后台启动设置daemonize no改成yes

    修改redis.conf(128行)文件将里面的daemonize no 改成 yes,让服务在后台启动

    ​​​​​​​Redis启动

    redis-server/myredis/redis.conf

    ​​​​​​​用客户端访问:redis-cli

    多个端口可以:redis-cli -p6379

    测试验证: ping

    ​​​​​​​Redis关闭

    单实例关闭:redis-cli shutdown

    也可以进入终端后再关闭

    多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown​​​​​​​

    Redis介绍相关知识

    Redis是单线程+多路IO复用技术

            多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。

            三个人找黄牛买票,此时黄牛手里没票,则他们各自去做自己的事,当黄牛买到了上海的配号,那么他就通知上海的人来取票,其他人则继续去做他的事情,现在是我在买票,但是当票还没有买到的时候,那么我继续去做我的事情,让CPU一直在跑不会停止。这就是单线程+多路IO复用技术。

  • 相关阅读:
    Redis足足十二题,应该没有人能全对
    【ArcGIS模型构建器】01:模型构建器Model Builder介绍
    2023 年江西省职业院校技能大赛软件测试(高职组)赛项样题
    【Kafka】Kafka再平衡机制及相关参数
    数据建模 - 概念模型,逻辑模型,物理模型 的区别以及建模方式
    【Python刷题篇】——Python入门 011面向对象(一)
    自学Python 46 日期和时间函数(一)
    安装使用HBuilderx
    OpenGL在不同着色器之间传递数据
    vue 动态表单优秀案例
  • 原文地址:https://blog.csdn.net/m0_52601969/article/details/126161607