一、基础
1、什么是Redis
- C语言编写,基于key-value存储的nosql开源内存数据库
- 内存存储、数据结构优化,高性能
- 一般用于应用和数据库之间的分布式缓存中间件
- 提供主从复制+哨兵、集群的方式实现高可用,在redis集群中通过hash槽的方式实现数据分片,进一步提升性能和可扩展性
2、Redis的优缺点
- 优点
- 读写性能优异
- 支持数据持久化RDB、AOF
- 支持事务
- 数据结构丰富
- 支持主从复制,主机自动将数据同步至slave,可进行读写分离
- 高性能(直接操作内存快)、高并发:
- 缺点
- 数据库容量受到物理内存限制
- 在线扩容困难
3、redis与其它缓存
- redis是分布式缓存
4、redis为什么快
- 完全基于内存
- 数据结构简单
- 采用单线程,避免不必要的上下文切换和竞争,也避免锁问题
- 采用多路IO复用模型,非阻塞IO
5、redis的应用场景
- 计数器、缓存、消息队列
- 分布式锁
6、redis有哪些数据类型
- String、List、Set、Zset、Hash、Geospatial、Hyperloglog、Bitmap
7、redis持久化
- 就是把内存数据写道磁盘,防止数据丢失
- RDB(默认):一定时间将内存数据以快照的形式保存到磁盘,以二进制压缩文件进行存储。
- 只有dump.rdb文件,方便持久化
- 容灾性好,文件保存到磁盘
- 性能最大化,fork子线程来完成写操作,主线程继续处理命令。
- 比AOF启动效率高
- 数据安全性低,RDB是间隔一段时间进行持久化,适合数据要求不严谨
- AOF(日志追加):