NOSQL的概念
他是对所有非关系型数据库的一种统称
NOSQL和RDBMS的区别
RDBMS关系型数据库
- 高度组织化结构化数据。 user—userid username age sex …
- 结构化查询语言(SQL) sql语句
- 数据和关系都存储在单独的表中。
- 数据操纵语言DML,数据定义语言DDL
- 严格的一致性. 事务
- 基于事务
NoSQL非关系型数据库
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 键 - 值对存储。
- 最终一致性,而非ACID【原子,一致,隔离,持久】属性
- 非结构化和不可预知的数据 字符串 对象 队列 集合
- 高性能,高可用性和可伸缩性。 适合搭建集群。 mysql搭建集群。非常复杂。主从模式
常见的NOSQL数据库类型
Redis就属于非关系数据库。
Mongodb属于非关系数据库。----接近mysql数据库
1. 什么是Redis
Redis是由意大利人Salvatore
Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary
Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted
set)、hash。
2. Redis特点
Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。以设置和获取一个256字节字符串为例,它的读取速度可高达110000次/s,写速度高达81000次/s。
Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启后,数据也不会丢失。因为Redis的存储分为内存存储、磁盘存储和log文件三部分,重启后,Redis可以从磁盘重新将数据加载到内存中,这些可以通过配置文件对其进行配置,正因为这样,Redis才能实现持久化。
Redis支持主从模式,可以配置集群,这样更利于支撑起大型的项目,这也是Redis的一大亮点。
3. Redis应用场景,它能做什么
众多语言都支持Redis,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。
拿大型网站来举个例子,比如a网站首页一天有100万人访问,其中有一个板块为推荐新闻。要是直接从数据库查询,那么一天就要多消耗100万次数据库请求。上面已经说过,Redis支持丰富的数据类型,所以这完全可以用Redis来完成,将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。
总之,Redis的应用是非常广泛的,而且极有价值,真是服务器中的一件利器,所以从现在开始,我们就来一步步学好它
如何下载安装redis
因为redis是使用c语言编写的,必须下载c++
1. 安装redis需要的环境。
yum install -y gcc-c++
2. 上官网下载redis源码安装包。
wget https://download.redis.io/releases/redis-6.2.1.tar.gz
1. 安装步骤
- 我这里解压redis到/usr/local/
tar -zxvf -C /usr/local/
- 进入redis目录并执行编译命令
make
- 执行安装命令
make install
开启redis服务。
1. 启动redis
提示必须:安装目录下运行改命令
redis-server redis.conf
2. 使用redis客户端连接redis服务器
redis-cli -h redis服务器的ip -p redis上图的端口号
如果是远程连接redis必须修改配置文件
在安装目录下使用该命令
vim redis.conf
根据下图进行修改配置
云服务器重启redis进程数据丢失问题解决
在Linux系统设置参数vm.overcommit_memory”即可解决,步骤如下:
1.编辑 sysctl.conf 配置文件:
vi /etc/sysctl.conf
2.任意位置另起一行增加参数配置,如下:
vm.overcommit_memory = 1
sysctl -p