1.概述
在工作中,我想多数人使用的最多Nosql数据库应该是Redis,经过10多年的发展Redis已经不仅仅用在最初的设计场景上,高级特性给Redis更多的使用场景。
2.高级特性
2.1 Bitmap
Bitmap不是一个数据结构,是一个字符串,我们通过redis单独为Bitmap提供的命令对这个字符串的位进行操作。
2.2 HyperLogLog
HyperLogLog是基于是基于概率统计理论实现的一个算法,基于hash函数和分桶参数实现了高效的运算。
2.3 Geo
Redis3.2提供了GEO-地理定位功能,它支持描述地理信息的数据存储,基于地理信息的特性提供了若干相关功能。
2.4 发布订阅
Redis提供一个简单发布/订阅模式的消息队列机制,它可以用于完成简单的消息队列功能。
3.使用场景
3.1 数据缓存/处理
基于Redis内存数据库高读取性能的特点,Redis基本5类类型,常用于对各种数据进行缓存,此外基于类型特性实现一些高效的数据处理,如排行榜、去重等。
3.2 高效统计计数
基于算法或者高级特性,实现低存储占比大数据计量的统计。
3.3 发布订阅
在没有部署Kafka、RocketMQ等消息中间件下,可以使用Redis完成简单的消息功能,使用时需要容忍无法实现消息堆积和回溯等问题。
3.4 分布式锁
因为Redis的读写操作具有原子性和高性能,因此常用于业务的分布式锁中。
3.5 地理信息相关操作
实现基于地理位置的功能,如获取地理位置距离、获取范围内地理信息危机集合的功能。
参考:《Redis开发与运维》