-
Redis简介
-
定义
- Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个含多种数据结构,支持网络,基于内存,可选持久性的键值对存储数据库。(Redis也符合按照数据结构来组织,存储,和管理数据的仓库的定义,也可以说是一种数据库。)
- NoSQL是指Not Only SQL,泛指非关系型数据库,而我们常用的MySQL,SqlServer都是关系型数据库,这些数据库一般用来存储重要信息,应对普通的业务没有问题,但是随着互联网的高速发展,传统的关系型数据库在应付超大规模,超大流量,以及高并发的时候力不从心,这个时候就需要用到像Redis这样的NoSQL数据库了(存储任意内容。)
- Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个含多种数据结构,支持网络,基于内存,可选持久性的键值对存储数据库。(Redis也符合按照数据结构来组织,存储,和管理数据的仓库的定义,也可以说是一种数据库。)
-
使用场景
- Redis被称为数据库,但却不一定会和MySQL数据库冲突,系统并不是只能使用两者之一
- Redis的常见使用场景是:1.作为数据缓存,因为其数据读取速度快,能够大大的提高运行效率,所以Redis在大多数情况下被称作“缓存”(Redis有时也称作缓存数据库。)2.当然,Redis也可以做到数据永久保存到磁盘上,但这是可选项,主要应用场景还是作为缓存。
- 缓存,顾名思义,就是把数据放在缓冲区,在查找数据时,首先会在缓存中进行查找,如果存在就获取,否则,就访问数据库,频繁的从缓存中读取数据,减少访问数据库的次数,可以提高运行效率;
- 读写缓存内容值Value都是通过Key完成的,用Key进行查询的方式非常简单,不像关系型数据库可以写各种查询语句用各种调解进行查询。
- 缓存,顾名思义,就是把数据放在缓冲区,在查找数据时,首先会在缓存中进行查找,如果存在就获取,否则,就访问数据库,频繁的从缓存中读取数据,减少访问数据库的次数,可以提高运行效率;
-
Redis优点
- 除了数据读取速度快之外,还有其他优点
- 1.支持多种数据类新:Redis支持Set,ZSet,List,Hash,String这五种数据类型,操作非常方便,特别强调,Redis是ANSI C语言编写的,并不是Java语言,在后面的学习过程中,不能把JAVA对象和Redis的数据类型画上等号,只能参数Java概念辅助理解。
- 2.持久化存储:把数据从内容保存到磁盘上从而保证计算机掉电不丢失,叫做持久化存储。(持久化是一个比较宽泛的概念,数据以任何形式(各种文件甚至存入MySQL)保存,只要做到不丢失都叫做持久化)
- 作为一个内存数据库,最担心的就是万一机器死机宕机,数据就会消失掉,Redis使用RDB和AOF做数据的持久化存储,主从数据同时会生成rdb文件,并利用缓冲区添加新的数据更新操作做出对应的同步。
- aof:aof以日志的形式记录服务器所处理的每一个写,删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录
- rdb:rdb在指定的时间间隔内将内存中的数据集快照写入磁盘
- 作为一个内存数据库,最担心的就是万一机器死机宕机,数据就会消失掉,Redis使用RDB和AOF做数据的持久化存储,主从数据同时会生成rdb文件,并利用缓冲区添加新的数据更新操作做出对应的同步。
- 3.性能很好:由于全是内存操作,所以读写性能很好,可以达到10w/s的频率
- 除了数据读取速度快之外,还有其他优点
- 缺点:1.内存容量问题,由于Redis是内存数据库,短时间内大量增加数据,可能导致内存不够用,Redis本身有数据过期策略,但还是需要提前预估和节约内存,如果内存增长过快,需要定期删除数据。2.持久化存储的性能损耗问题:如果进行完整持久化,就需要生成rdb文件并传输保存,会占用主机的CPU,并消耗网络带宽,虽然Redis2.8版本之后,已经有只保存部分变化过的数据的功能,但是还是有可能有完整持久化的,比如新上线的从库。3.重启速度可能慢:将硬盘中的数据加载进内存,时间比较久,在这个过程中,Redis不能提供服务。
-
安装Redis
-
1.安装Docker
- Docker是今年来非常流行的虚拟化技术
- 安装后终端执行curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun安装Docker即可
-
2.验证
- 输入sudo docker version验证是否成功
-
- 输入sudo docker version验证是否成功
-
3.安装Redis并启动
- 终端输入
- sudo docker pull redis:latestsudo docker imagessudo docker run --name redis -p 6379:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass "Hello122342"
- 6379是Redis服务的端口号
- 此处的Hello122342是密码,可以自己修改
- 终端输入
-
验证是否成功
- sudo docker ps
-
-