1.什么是Redis
redist是一个key-value形式的非关系型数据库。
2.redis的数据类型
string(字符串,整数,浮点)、list(列表)、set(无序集合)、zset(有序集合)、hash(哈希)
3.Redis有哪些优缺点
优点:
- 读写性能优异, Redis能读的速度是110000次/s,写的速度是81000次/s。
- 支持数据持久化,支持AOF和RDB两种持久化方式。
- 支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
- 数据结构丰富,除了支持string类型的value外还支持hash、set、zset、list等数据结构。
- 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
缺点:
- 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
- Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
- 主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性。
- Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。
4.什么是redis的持久化
持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。
5.Redis 的持久化机制是什么?各自的优缺点?
redis提供两种持久化机制RDB(默认)和AOF
RDB:是redis DataBase缩写快照
RDB是redis默认的持久化方式,按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb,通过配置文件中的save参数来定义快照的周期。

优点:
- 只有一个文件dump.rdb,方便持久化。
- 容灾性好,一个文件可以保存到安全的磁盘。
- 性能最大化,fork子进程来完成操作,让主进程继续处理命令,所以IO最大化,使用单独紫禁城来进行持久化,主进程不会进行任何IO操作,保证redis的高性能。
- 相对于数据集大时,比AOF的启动效率更高。
缺点:
- 数据安全性低,RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失,所以这种方式更适合数据要求不严谨的时候。
AOF:是指所有的命令行记录以redis命令请求协议的格式完全持久化存储,保存为aof文件。
AOF持久化:将redis执行的每次命令记录到单独的日志文件中,当重启redis会重新将持久化的日志文件用来恢复数据。
当两种方式同时开启时,数据恢复reids会优先选择AOF恢复。

优点:
- 数据安全,aof持久化可以配置appendsync属性,有always,每进行一次命令操作就记录到aof文件中一次。
- 通过append模式写文件,即使中途服务器宕机,可以通过redis-check-aof工具解决数据一致性问题。
- AOF机制的rewrite模式,AOF文件没被rewrite之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的flushall)
缺点:
- AOF文件比RDB文件大,且恢复速度慢。
- 数据集大的时候,比RDB启动效率低。
RDB和AOF对比
- AOF文件比RDB更新频率高,优先使用AOF还原数据。
- AOF比RDB更安全更大
- RDB性能比AOF好
- 如果两个都配了优先加载AOF
Redis是一个高性能的key-value数据库,支持多种数据结构如string、list、set等。其优点包括读写速度快、支持事务和持久化,但受限于内存大小,不适合海量数据。Redis提供RDB和AOF两种持久化方式,RDB在数据安全性较低但启动快速,而AOF保证数据安全但文件较大、恢复较慢。在数据丢失风险和性能之间需要权衡选择。
633

被折叠的 条评论
为什么被折叠?



