目录
3、Redis 与其他 key-value 存储有什么不同?
1、什么是 Redis?
Redis
是完全开源免费的,遵守
BSD
协议,是一个高性能的
key-value
数据库。
Redis
与其他
key - value
缓存产品有以下三个特点:
1)Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
2)Redis
不仅仅支持简单的
key-value
类型的数据,同时还提供
list
,
set
,
zset
,hash 等数据结构的存储。
3)Redis
支持数据的备份,即
master-slave
模式的数据备份。
2、Redis 优势
1)性能极高
– Redis
能读的速度是
110000
次
/s,
写的速度是
81000
次
/s
。
2)丰富的数据类型
– Redis
支持二进制案例的
Strings, Lists, Hashes, Sets
及Ordered Sets 数据类型操作。
3)原子
– Redis
的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过 MULTI
和
EXEC 指令包起来。
4)丰富的特性
– Redis
还支持
publish/subscribe,
通知
, key
过期等等特性。
3、Redis 与其他 key-value 存储有什么不同?
Redis
有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis
的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis
运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样 Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
4、Redis 的数据类型?
Redis
支持五种数据类型:
string
(字符串),
hash
(哈希),
list
(列表),set(集合)及
zsetsorted set
:有序集合
)
。
我们实际项目中比较常用的是
string
,
hash
如果你是
Redis
中高级用户,还需要加上下面几种数据结构 HyperLogLog
、
Geo
、
Pub/Sub
。
如果你说还玩过
Redis Module
,像
BloomFilter
,
RedisSearch
,
Redis-ML
,面试官得眼睛就开始发亮了。