
一、、媒介
近乎所有与Java有关的口试城市问到缓存的问题,基础一点的会问到什么是“二八定律”、、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、、缓存穿透、、缓存预热、、缓存更新、、缓存降级等问题,这些看似不常见的概念,都与8463永利皇宫缓存服务器有关,通经常用的缓存服务器有Redis、、Memcached等,而笔者目前最常用的也只有Redis这一种。
若是你在以前口试的时辰还没有遇到过口试官问你《为什么说Redis是单线程的以及Redis为什么这么快!!》,那么你看到这篇文章的时辰,你应该感触是一件很幸运的事件!!若是你刚好是一位高逼格的口试官,你也能够拿这道题去口试对面“望穿秋水”般的小同伴,测试一下他的把握水平。
好啦!!步入正题!!我们先探求一下Redis是什么,Redis为什么这么快、、而后在探求一下为什么Redis是单线程的???
二、、Redis简介
Redis是一个开源的内存中的数据结构存储系统,它能够用作::数据库、、缓存和新闻中央件。
它支持多种类型的数据结构,如字符串(String),散列(Hash),列表(List),集中(Set),有序集中(Sorted Set或者是ZSet)与领域查问,Bitmaps,Hyperloglogs 和地理空间(Geospatial)索引半径查问。其中常见的数据结构类型有::String、、List、、Set、、Hash、、ZSet这5种。
Redis 内置了复制(Replication),LUA剧本(Lua scripting), LRU驱动事务(LRU eviction),事务(Transactions) 和分歧级此外磁盘悠久化(Persistence),并通过 Redis哨兵(Sentinel www.xucaizxyl.com)和自动分区(Cluster)提供高可用性(High Availability)。
Redis也提供了悠久化的选项,这些选项能够让用户将自己的数据保留到磁盘上面进行存储。凭据现实情况,能够每隔一按功夫将数据集导出到磁盘(快照),或者追加到号令日志中(AOF只追加文件),他会在执行写号令时,将被执行的写号令复制到硬盘里面。您也能够关闭悠久化职能,将Redis作为一个高效的网络的缓存数据职能使用。
Redis不使用表,他的数据库不会预约义或者强制去要求用户对Redis存储的分歧数据进行关联。
数据库的工作模式按存储方式可分为::硬盘数据库和内存数据库。Redis 将数据贮存在内存里面,读写数据的时辰都不会受到硬盘 I/O 速度的限度,所以速度极快。
(1)硬盘数据库的工作模式::
这里写图片描述
(2)内存数据库的工作模式::
这里写图片描述
看完上述的描述,对于一些常见的Redis有关的口试题,是否有所意识了,例如::什么是Redis、、Redis常见的数据结构类型有哪些、、Redis是若何进行悠久化的等。