除了上一篇博客讲的五种基本数据类型外,Redis还有三种特殊的数据类型,它们有着不同的应用场景,这一篇博客,我们来学习它。
目录
一、geospatial 地理空间
1.1 添加地理位置
1.2 返回给定名称的纬度和经度
1.3 返回两个给定位置之间的距离
1.4 以给定的纬度经度为中心,找到某一半径内的城市
1.5 以给定的成员搜索距离以内的城市
二、hyperloglog基数
三、bitmaps位图
3.1 向位图添加数据(打卡)
3.2 查看位图中某个位置的值(确定是否到)
3.3 统计位图中value等于1的个数(累计多少天)
一、geospatial 地理空间
Redis 支持地理空间(Geospatial)数据类型,可以存储和操作地理位置相关的数据。这是通过内置的 GEO 命令集合来实现的,主要用于处理地理位置的存储、查询和计算。可以用来实现朋友的定位,附近的人,打车距离计算等。城市的经度纬度查询: http://www.jsons.cn/lngcode/。它的命令很简单,只有下面6个。
1.1 添加地理位置
添加地理位置,格式:geoadd key 纬度 经度 名称
1.2 返回给定名称的纬度和经度
返回给定名称的经度和纬度:geopos key 名称
1.3 返回两个给定位置之间的距离
查看两个城市之间的距离:geodist key 名称1 名称2 距离单位(例:km)
1.4 以给定的纬度经度为中心,找到某一半径内的城市
以给定的经纬度搜索在多少距离之内的城市 :georadius key 经度 纬度 距离 距离单位(例:km)
1.5 以给定的成员搜索距离以内的城市
以给定的成员搜索距离以内的城市:georadiusbymember key 名称 距离单位
二、hyperloglog基数
Redis 中的 HyperLogLog 是一种概率性数据结构,用于快速估算一个集合中不同元素的数量,即基数(Cardinality)。它通过使用少量固定的内存来实现这一目标,通常为 12 KB,不管数据集合的大小如何,误差率可以控制在 0.81% 以内。
HyperLogLog 的应用场景
- 网站独立访客统计:计算一段时间内访问网站的独立用户数。
- 广告去重:统计广告的唯一展示次数,防止重复计数。
- 大数据分析:在数据分析中,估算大数据集合中的唯一值数量,如日志分析中的唯一 IP 数量。
三、bitmaps位图
Bitmaps 是一种位数组数据结构,在 Redis 中通过字符串类型实现,允许对每一位进行操作。每个位可以存储 0 或 1,用于表示二进制状态, 所以只要是只有两种状态值的场景,都可以使用 bitmaps来存储。比如:登录、未登录;打卡,未打卡;活跃,不活跃等。
3.1 向位图添加数据(打卡)
在bitmaps中添加数据,格式: setbit key offset value
3.2 查看位图中某个位置的值(确定是否到)
查看位图中某个位置的值,格式: getbit key offset
3.3 统计位图中value等于1的个数(累计多少天)
统计位图中value等于1的个数,格式: bitcount key start end
至此,Redis数据库第三节就介绍完毕,这一节内容作个简单了解,更多精彩内容见后期博客!感谢阅读,如果喜欢,点赞加关注!