本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/10950727.html
出现背景
关系型数据库的不足:数据是存储在磁盘上的,磁盘的 I/O 读写瓶颈会直接影响性能
所以,我们可以用速度更快的内存来存储常用但数据量不算大、且结构简单的数据
这样可以较大程度缓解关系型数据库带来的磁盘 I/O 读写瓶颈
什么是非关系型数据库
非关系型数据库也称为NoSQL,NoSQL的全称是Not only SQL
没有表结构,用简单的键值方式来存储数据
相比于关系型数据库,由于其存储结构相对简单,在适用于缓存数据库的场景中,可以获得比较高的效率
Key作为数据检索的唯一标识,value作为数据存储的对象,每一个Value都有一个Key与之关联
种类:下图可以看到,redis排第一
redis介绍
官网:https://redis.io/docs/about/
Redis是一个开源的内存数据库,功能很强大
主要特点是:
1.支持多种数据结构
常用的5种:strings, hashes, lists, sets, sorted sets
说明:
在redis中,key永远都是string类型,value可以是上面列举的类型 命令不区分大小写,但key和value区分大小写 命令可以通过tab补全,补全的命令都是大写
2.线程机制
4.0之前使用单线程,避免了上下文切换
4.0以及之后开始慢慢支持多线程,直到redis6/7之后才稳定;多线程可以分摊Redis同步读写I/O的压力,以及充分利用多核CPU资源
3.可持久化
可以把数据从内存永久存储到磁盘,这样可以防止断电等异常情况下数据丢失等问题
支持RDB(快照)与 AOF(append-only file,完整记录修改数据的命令)
4.支持 Lua 脚本
当需要保证原子性的时候需要使用 lua 脚本
lua 脚本能够保证操作的原子性,即所有的操作当作一个操作,要么全部失败要么全部成功
5.支持分布式锁
可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行
6.支持事务
7.支持发布/订阅
功能不如专业的mq强大
8.支持主从复制
9.支持sentinel:自动故障转移
10.提供了多种语言的API(java、python...)
标签:存储,01,简介,数据库,redis,支持,value,磁盘 From: https://www.cnblogs.com/uncleyong/p/17873979.html