Redis-面试热点

96

一、使用Redis的好处
1、速度快,数据存储在内存中,查找和操作的时间复杂度都是0(1)
2、支持丰富数据类型
3、支持事务,操作都是原子性(要么全部执行,要么全不执行)
4、丰富的特性:可用于缓存、消息队列、按key设置timeout
二、redis相比memcached有什么优势
1、memcached所有的值都是简单的字符串,redis作为其代替者,支持更丰富的数据类型
2、redis速度比memcached快很多
3、redis可以持久化其数据
三、redis常见性能问题和解决方案
1、Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件
2、如果数据比较重要,某个Slave开启AOF备份数据,策略为每秒同步一次
3、为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内
4、尽量避免在压力很大的主库上增加从库
5、主从复制不要用图状结构,用单向链表结构更为稳定(这样的结构更方便解决单点故障问题,实现Slave对Master的替换,如果Master挂了,可以立即启用Slave做Master)
四、如何保证 Redis中数据都是热点数据
相关知识:redis内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。
redis提供6种数据淘汰策略:
1、voltile-lru:从已设置过期时间的数据集(service.db[i].expires)中挑选最近最少使用的数据淘汰。
2、volatile-ttl:从已设置过期时间的数据集(service.db[i].expires)中挑选将要过期 数据淘汰。
3、volatile-random:从已设置过期时间的数据集(service.db[i].expires)中任意选择数据淘汰。
4、allkeys-lru:从数据集(service.db[i].dict)中挑选最少使用的数据淘汰。
5、allkeys-random:从数据集(service.db[i].dict)中任意选择数据淘汰。
6、no-enviction(驱逐):禁止驱逐数据
五、Memcache与Redis的区别有哪些
1、存储方式区别
Memcache存储内存,数据不能超过内存大小,断电挂掉;
Redis有部分存储在硬盘,保持数据持久性。
2、支持数据类型区别
Memcache支持类型相对简单
Redis支持更为复杂的数据类型。
3、使用底层模型不同
他们之间的底层实现方式以及客户端之间通信的应用协议不一样
Redis直接构建了自己的VM机制,因为一般的系统调用和系统函数的话,会浪费一定的时间去移动和请求。
4、value大小
redis最大可达到1GB
memcached最大1MB
六、Redis最适用的场景
1、会话缓存(Session Cache)
最常用就是使用Redis做会话缓存。Redis相比与其他存储的优势在于可持久化。
2、全页缓存(FPC)
除基本的会话token之外,Redis还提供简便的FPC平台。即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度下降。
3、队列
Redis在内存存储引擎领域的最大一个优点就是提供list和set操作,这使得Redis能做为一个很好的消息队列平台来使用。
4、排行榜/计数器
Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(set)和有序集合(Sorted Set)也使得我们在执行这些操作时变得非常简单,Redis只是正好提供了这两种数据结构。
5、发布/订阅
Redis自带的发布/订阅功能可使用场景非常多。可以在社交网络连接中使用,还可以作为基于发布/订阅的脚本触发器,甚至可以用来建立聊天系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值