Key-Value Store更加注重对海量数据存取的性能,分布式,扩展性支持上,并不需要传统关系数据库的一些特性.因此在分布式环境下的性能相对于传统的关系型数据库有较大的提升.
Redis是完全开源免费,是一个高性能的key-value数据库
数据类型
作为key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系,但是,除了常规的数值或字符串,Redis的键值还可以是以下形式之一.
- Lists(列表)
- Sets(集合)
- Sorted sets(有序集合)
- Hashes(哈希表)
键值的数据类型决定了该键值支持的操作.Redis支持诸如列表、集合或有序集合的交集、并集、差集等高级原子操作;同时,如果键值的类型是普通数字,Redis则提供自增等原子操作.
持久化
Redis将数据存储与内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化.
- 使用截图的方式,将内存中的数据不断写入磁盘.
- 或使用类似MySQL的日志方式,记录每次更新的日志
前者性能较高,但是可能会引起一定程度的数据丢失;后者相反.
主从同步
Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益.
性能
相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给Redis带来了非常优秀的性能.读写操作之间有显著的性能差异.
适用场合
- 取最新N个数据的操作
- 排行榜应用,取Top N操作
- 需要精准设定过期时间的应用
- 计数器应用
- Uniq操作(命令删除文件中的重复行),获取某段时间所有的数据排重值
- 实时系统,反垃圾系统
- Pub/Sub构建实时消息系统
- 构建队列系统
- 缓存
网友评论