【基础概念】Redis简介和面试常见问题

redis简介和面试常见问题

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、虚拟空间、营销软件、网站建设、稷山网站维护、网站推广。

简介:

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

定义:

    Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

面试常见的问题:

    1. 使用Redis有哪些好处?

        (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)

        (2) 支持丰富数据类型,支持string,list,set,sorted set,hash

        (3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行

        (4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

    2. Redis相比memcached有哪些优势?

        (1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型

        (2) redis的速度比memcached快很多

        (3) redis可以持久化其数据

    3. Redis常见性能问题和解决方案:

        (1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件

        (2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次

        (3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内

        (4) 尽量避免在压力很大的主库上增加从库

        (5) 主从复制不要用图状结构,用单向链表结构更为稳定,即:Master <- Slave1 <- Slave2 <- Slave3...这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。


标题名称:【基础概念】Redis简介和面试常见问题
文章地址:http://scjbc.cn/article/peooig.html

其他资讯