数据库Redis(一):基础知识

NoSQL数据库简介

NoSQL,Not only SQL,泛指非关系型的数据库,不依赖业务逻辑方式存储,而以简单的 key-value 模式存储,极大地增加了数据库的扩展能力。
1)不遵循SQL标准;
2)不支持ACID(原子性、一致性、隔离性、持久性);
3)远超于SQL的性能。

NoSQL适用场景

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

NoSQL不适用场景

  1. 需要事务支持;
  2. 基于SQL的结构化查询存储,处理复杂的关系,需要即席查询(用户根据自己需求来灵活地选择查询条件,系统根据用户的选择生成相应的统计报表);
  3. 用不着SQL 和 用了SQL也不行的情况,均可以考虑NoSQL

Redis概述

  1. 开源的Key-Value存储系统;
  2. 支持更多的Value类型,包括字符串string、链表list、集合set、有序集合zset、哈希类型hash;
  3. 原子性操作,支持push/pop、add/remove、取交集/并集/差集等操作;
  4. 支持不同方式的排序;
  5. 为保证效率,数据缓存在内存中,Redis会周期性地把更新的数据写入磁盘,或把修改操作写入记录文件;
  6. 实现master-slave主从同步。

Redis应用场景

  1. 配合关系型数据库做高速缓存;
  2. 多样的数据结构存储持久化数据

Redis安装

  1. 在服务器准备c语言的编译环境gcc;
  2. 在 Download | Redis 下载Redis的压缩包,并通过XFtp将压缩包上传至服务器端;
  3. 解压压缩包:tar -zxvf redis-7.2.0.tar.gz
  4. 进入 ./redis-7.2.0 目录下进行编译:make
  5. 编译成功后进行安装:make install
Redis的默认安装目录:/usr/local/bin

默认安装目录下文件说明:

  1. redis-benchmark:性能测试工具;
  2. redis-check-aof:修复有问题的AOF文件;
  3. redis-check-dump:修复有问题的dump.rdb文件;
  4. redis-sentinel:Redis集群使用;
  5. redis-server:Redis服务器启动命令
  6. redis-cli:客户端,操作入口,可以直接通过 /usr/local/bin/redis-cli 启动redis

后台启动

  1. 备份redis-7.2.0目录文件下的redis.conf文件:cp /opt/redis-7.2.0/redis.conf /etc/redis.conf
  2. 修改新备份文件:将后台启动设置 daemonize no 改成 yes
  3. Redis后台启动:redis-server /etc/redis.conf
  4. 查看redis进程:ps -ef | grep redis
  5. 用客户端访问:redis-cli

Redis 单线程+多路IO复用

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

你可能感兴趣的:(数据库,数据库,redis,缓存)