linux运维工程师面试常见问题整理3--redis相关

1. redis 持久化是怎么做的

1.客户端向服务端发送写的操作
2.数据库服务端接收到写请求的数据
3.服务端调用weite这个系统调用,将数据往磁盘上写
4.操作系统将缓冲区中的数据转移到磁盘控制器上
5.磁盘控制器将数据写到磁盘的物理介质中

2. redis 是用了集群还是单点

1.并发访问量大的时候肯定要集群才能满足需求,如果用户量不大,访问不是特频繁,单点基本可以。
2.考虑到高可用的时候肯定是要使用集群的,因为存在单点故障问题。
3.对数据延时要求高肯定是要使用集群的,单点毕竟存储和计算能力有限。
4.对数据可靠性,稳定性,以及系统整体容灾,数据容错,数据一致性等高性能要求高,集群是肯定的。

3. redis RDB 与AOF 有什么区别

"RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。

AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

4. redis和memcache有什么区别,分别的优缺点是啥

区别

1.redis中并不是所有的数据都一直储存在内存中

2.Redis在很多方面具备数据库的特征,也就是说redis就是一个数据库系统,memcache只是简单的K/V缓存

3.100k以上的数据中memcache性能要高于redis

如果说内存使用效率,memcached的内存利用率更高,而如果redis采用hash结构来做key-value存储由于其组合式的压缩,其内存利用率会高于memcache

如果对数据持久化和数据同步有所要求,那么就选择redis,这两个特性memcache都不具备

Redis和memcache在写的性能上面差别不大,读取的性能上,尤其是批量读取性能上面memcache更强

Memcache

memcache可以利用多核优势,单实例吞吐量极高

只支持简单的key-value数据结构

无法经行持久化,数据不能备份,只能用于缓存使用,重启后数据全部丢失

Redis

支持多种数据结构

单线程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题

支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而经行数据备份或数据恢复等操作,较好的防止数据丢失的手段

支持主从复制,通过主从机制,可以实时经行数据的同步复制,支持多级复制和增量复制

支持pub/sub消息订阅机制,可以用来经行消息订阅宇通知

支持检点的事物需求,但业界只用场景很少,并不成熟

猜你喜欢

转载自blog.csdn.net/xzm5708796/article/details/83933869