Redis基础知识
1、什么是 Redis, 有哪些优缺点?
优点:
读写性能优异,从内存当中进行IO读写速度快。
支持数据持久化(AOF,RDB)
支持主从复制,主机会自动将数据同步到从机,可以进行读写分离
数据结构丰富:除了支持string类型的value外还支持string、hash、set、sortedset、list等数据结构
Redis是单线程多CPU,这样速度更快
缺点:
主从同步,如果主机宕机,宕机前有一部分数据没有同步到从机,会导致数据不一致
主从同步,数据同步会有延迟
读写分离,主机写的负载量太大,也会导致主机的宕机
2、Redis 最适合的场景, 可以简单的说说吗?
会话缓存(session cashe)
会话缓存(Session Cache)最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。
全页缓存(FPC)
除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。
队列
Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。
排行榜/计数器
Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户–我们称之为“user_scores”
发布/订阅
Redis的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在社交网络连接中使用,还可作为基于发布/订阅的脚本触发器,甚至用Redis的发布/订阅功能来建立聊天系统!(不,这是真的,你可以去核实)
3、Redis 相比 Memcached 有哪些优势?
1、Memcached所有的值均是简单字符串,Redis作为其替代者,支持更为丰富的数据类型
2、Redis 的速度比 Memcached 快很多
3、Redis可以做到持久化数据
4、一个字符串类型的值能存储最大容量是多少?
512M
5、Redis 读写分离
随着企业业务的不断扩大,请求的并发量不断增长,Redis可能终会出现无法负载的情况,此时我们就需要想办法去提升Redis的负载能力。
读写分离(主从复制)是一个比较简单的扩展方案,使用多台机器同时运行Redis服务,一台负责写服务,多台负责读服务,通过多台服务器对请求进行负载,大大提高了Redis服务的负载压力。
最常见的读写分离是一主二从的模式,一台主服务器负责Redis写入服务,两台从服务器负责Redis的读取服务,从服务器定时从主服务器复制Redis数据。