Redis基础知识解答

1.简述redis以及优缺点

Redis是一个Key-Value类型的非关系型的内存数据库,整个数据库加载在内存当中操作,定期通过异步操作把数据库中的数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value 数据库。

优点

1)读写性能极高, Redis能读的速度是110000次/s,写的速度是81000次/s。
2)支持数据持久化,支持AOF和RDB两种持久化方式。
3)支持事务, Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
4)数据结构丰富,除了支持string类型的value外,还支持hash、set、zset、list等数据结构。
5)支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
6)丰富的特性 – Redis还支持 publish/subscribe,、通知,、key 过期等特性。

缺点

数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

2.redis很快的原因

1)内存存储。

数据存在内存中,没有磁盘IO上的开销。

2)单线程实现( Redis 6.0以前)。

避免了多个线程之间线程切换和锁资源争用的开销。(单线程是指一个线程处理所有网络请求)

3)非阻塞IO。

使用多路复用IO技术,将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间。

4)优化的数据结构。

有诸多可以直接应用的优化数据结构的实现,应用层可以直接使用原生的数据结构提升性能。

5)使用底层模型不同。

建了虚拟内存机制 ,而不是系统调用系统函数。

3.redis与memcached的比较

特点memcachedredis
读写高性能高性能
单/多线程读写多线程读写性能更强单线程读写性能更强
使用多用户并发,低访问少量用户,多次访问
数据类型单一(字符串)字符串、哈希表、集合、有序集合、列表
数据持久化不支持支持RDB和AOF持久化
结构多核单核
数据操作在客户端操作,客户端分布式集群,没有原生的集群模式支持服务端操作,主从同步机制,以及 Cluster集群部署能力,能够提供高可用服务
内存使用效率仅key-value存储时,更高hash结构时,更高
网络IO模型多线程非阻塞IO模型单线程多路IO复用模型

4.Redis使用场景

1、缓存

几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。

2、排行榜

3、计数器

如电商网站商品的浏览量、视频网站视频的播放数等。

4、分布式会话

当应用增多相对复杂的系统中,一般都会搭建以Redis等内存数据库为中心的session服务,session不再由容器管理,而是由session服务及内存数据库管理。

5、分布式锁

利用Redis的setnx功能来编写分布式的锁。

6、 社交网络

点赞、踩、关注/被关注、共同好友等社交网站的基本功能,Redis提供的哈希、集合等数据结构能很方便的的实现这些功能。

7、最新列表

8、消息系统

大型网站的必用中间件,如ActiveMQ、RabbitMQ、Kafka等流行的消息队列中间件,主要用于业务解耦、流量削峰及异步处理实时性低的业务。Redis提供了发布/订阅及阻塞队列功能,能实现一个简单的消息队列系统。另外,这个不能和专业的消息中间件相比。

5.Redis的单线程和多线程,以及使用原因。

首先,Redis在4.0版本时引入多线程处理异步任务,此举主要针对那些非常耗时的命令。6.0版本时,正式在网络模型中实现IO多线程。所以,在Redis 6.0之前,其核心网络模型使用的是单线程。

其次,互联网的IO瓶颈十分明显,6.0应用多线程原因如下图。
在这里插入图片描述

最后,redis6.0以前使用单线程,可以避免过多的上下文切换开销;避免同步机制的开销;简单可维护。

6.Redis过期键的删除策略

Redis的过期策略和淘汰策略

7.Redis的持久化机制

redis持久化之RDB和AOF比较

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值