写在前边

  • Redis入门的整合篇。本篇也算是把2021年redis留下来的坑填上去,重新整合了一翻,点击这里,回顾我的2020与2021~一名大二后台练习生

NoSQL

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。

  • 不遵循SQL标准。
  • 不支持ACID。
  • 远超于SQL的性能。

适用场景

  • 对数据高并发的读写
  • 海量数据的读写
  • 对数据高可扩展性的

不适用场景

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

概述

Redis(Remote Dictionary Server ),即远程字典服务 !
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

  • redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

用途

1、内存存储、持久化,内存中是断电即失、所以说持久化很重要(rdb、aof)
2、效率高,可以用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器、计数器(浏览量!)

特性

1、多样的数据类型
2、持久化
3、集群
4、事务

历史发展

一开始数据量很少,只需要单表处理读和写

90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够!
那个时候,更多的去使用静态网页 Html ~ 服务器根本没有太大的压力!
思考一下,这种情况下:整个网站的瓶颈是什么?
1、数据量如果太大、一个机器放不下了!
2、数据的索引 (B+ Tree),一个机器内存也放不下
3、访问量(读写混合),一个服务器承受不了

Memcached(缓存)+ MySQL + 垂直拆分 (读写分离)

可以一台服务器负责写,如何同步给前台服务器去读?

网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据的压力,我们可以使用缓存来保证效率!

分库分表,MySQL集群 + 水平拆分

早些年MyISAM: 表锁,十分影响效率!高并发下就会出现严重的锁问题
转战Innodb:行锁
慢慢的就开始使用分库分表来解决写的压力! MySQL 在哪个年代推出了表分区!这个并没有多少公司使用!
MySQL 的集群,很好满足那个年代的所有需求!

Linux安装

1、官网下载安装包!
2、解压Redis的安装包到你要的目录!

3、基本环境安装

4、进入解压后的目录

4、进入src目录

  • 此处如果有问题的话可以自行搜索相关安装教程,根据自己需求下载window版或者linux版

Redis运行

先设置daemonize no改成yes,开启后台启动

protected-mode 设置成no

找到# requirepass foobared