Redis常用技能及常见问题汇总

2018年8月20日10:09:11 发表评论 1,880 views
摘要

Redis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应用程序。Redis属于非关系型数据库和Memcached类似,redis也是一个key-value型存储系统。

广告也精彩

Redis常用技能及常见问题汇总

一、最常见的redis问题【面试】

1、您的业务中是如何使用Redis的?

我们使用redis作为热缓存数据(读写频繁),提高用户体验·

2、您的业务是否遇到过Redis性能瓶颈的问题,您是如何应对的?

使用内存过大,使用懒惰删除过期key,需要增加虚拟内存及物理内存

3、您是否遇到过双向甚至多向数据同步的问题,是什么场景?您又是如何解决的?

描述:
遇到过,主要是在集群中,由于redis数据同步存在一定的时间延迟,可能造成数据不一致。通过在写库前后都进行del操作,并设置一定的超时时间来处理数据不一致的问题。

4、您在Redis的使用过程中最在意的问题是什么?性能?成本?安全性?便捷性?

描述:
首选确认安全性,其次才是 性能,然后是成本,便捷性

5. 使用redis有哪些好处?

描述:
(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
(2) 支持丰富数据类型,支持string,list,set,sorted set,hash
(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

6. redis相比memcached有哪些优势?

对比描述:
(1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
(2) redis与memcached性能相当
(3) redis可以持久化其数据

7. redis有哪些需要注意的点:

注意点:
(1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件
(2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次
(3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内
(4) 尽量避免在压力很大的主库上增加从库
(5) 主从复制不要用图状结构,用单向链表结构更为稳定,即:Master <- Slave1 <- Slave2 <- Slave3...
这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。

8.懂Redis事务么?

描述:
正常版:Redis事务是一些列redis命令的集合,然后可以聊了。。。。
高调版: 我们在生产上采用的是Redis Cluster集群架构,不同的key是有可能分配在不同的Redis节点上的,在这种情况下Redis的事务机制是不生效的。其次,Redis事务不支持回滚操作,简直是鸡肋!所以基本不用!

9.Redis的多数据库机制,了解多少?

描述:
正常版:Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,单机下的redis可以支持16个数据库(db0 ~ db15)
高调版: 在Redis Cluster集群架构下只有一个数据库空间,即db0。因此,我们没有使用Redis的多数据库功能!

10.Redis集群机制中,你觉得有什么不足的地方吗?

描述:
正常版: 不太清楚,正式环境没有接触到。
高调版: 假设我有一个key,对应的value是Hash类型的。如果Hash对象非常大,是不支持映射到不同节点的!只能映射到集群中的一个节点上!还有就是做批量操作比较麻烦!

11.懂Redis的批量操作么?

描述:
正常版: 懂一点。比如mset、mget操作等,blabla
高调版: 我们在生产上采用的是Redis Cluster集群架构,不同的key会划分到不同的slot中,因此直接使用mset或者mget等操作是行不通的。

12.你们有对Redis做读写分离么?

描述:
正常版:没有做,它要追着问,就给他转移话题。。。扯~
高调版:不做读写分离。我们用的是Redis Cluster的架构,是属于分片集群的架构。而Redis本身在内存上操作,不会涉及IO吞吐,即使读写分离也不会提升太多性能,Redis在生产上的主要问题是考虑容量,单机最多10-20G,key太多降低Redis性能.因此采用分片集群结构,已经能保证了我们的性能。其次,用上了读写分离后,还要考虑主从一致性,主从延迟等问题,徒增业务复杂度。

13,redis持久化你们生产是如何应用的

14,redis save 与 bgsave 的区别

描述
save 是把redis 数据集备份到磁盘,此时redis i/O阻塞
bgsave 也是备份,但是会创建1个fork进程进行磁盘数据保存操作,并不会影响redis的使用

15,Redis 主从数据不一致 如何处理?

15.1 如何查看redis 主从是否一直

二、Redis技能汇总【图解】

Redis常用技能及常见问题汇总

更多精彩:详细请查看,我的Mysql系列下的redis版块

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
广告也精彩
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: