Redis简介
redis是一款高性能的NOSQL系列的非关系型数据库(由C语言开发)
1,Redis支持哪些数据结构
string,hash,set,sortedset,list
java中经常使用jedis进行Redis的相关操作;
详情操作方法见:[Redis笔记](https://blog.csdn.net/weixin_44848900/article/details/104534058)
2,Redis有哪些优势和缺点?
优点
(1),速度快,因为存储在内存中;
(2),支持丰富数据类型,支持string,list,set,sortedset,hash;
(3),成本低;
(4),扩展性比较好;
缺点
- 相对其他关系型数据库mysql等不成熟,维护工具较少;
- 没有SQL支持;
- 不提供MySQL那样的事务处理支持;
3,Redis持久化的方式?
1, RDB持久化:此功能可以将redis中的内容存储到硬盘上,我们可以修改redis.conf文件的配置,
定期执行;RDB持久化产生的RDB文件是一个经过压缩的二进制文件,
这个文件被保存在硬盘中,redis可以通过这个文件还原数据库当时的状态
2, AOF持久化:RDB持久化相当于备份数据库状态,而AOF持久化是备份数据库接收到的命令,
所有被写入AOF的命令都是以redis的协议格式来保存的。(也就是记录下来了所有redis命令);
对比:(不做重点记忆)
AOF更安全,可将数据及时同步到文件中,但需要较多的磁盘IO,AOF文件尺寸较大,
文件内容恢复相对较慢,也更完整。
RDB持久化,安全性较差,它是正常时期数据备份及 master-slave数据同步的最佳手段,
文件尺寸较小,恢复数度较快;
4,Redi是单线程还是多线程的?为什么?
1. 单线程;
2. 因为CPU不是Redis的瓶颈,Redis的瓶颈最有可能是机器内存或者网络带宽;单线程比较容易实现;
3. redis为什么这么快?
纯内存数据库,避免了磁盘I/O的瓶颈。
单进程单线程,减少了线程上下文切换的开销。
Redis全程使用hash结构,读取速度快,还有一些特殊的数据结构,对数据存储进行了优化;