除了五种基本数据类型外,REDIS还具有三种特殊数据类型,即超置错误,位图和地理空间。
REDIS 2.8.9版本更新了HyperLogLog数据结构!
例如,a = {1、2、3、4、5},b = {3、5、6、7、9};然后碱(非重复元素)= 1、2、4、6、7、9;(允许容错性,也就是说,您可以接受一定的错误)
这种结构可以节省各种内存计数,例如注册的IP号,对IP的日常访问,页面UV,在线用户数量和朋友数量。
一个大型网站每天有100万个IP,而粗糙的IP消耗了15个字节,然后100万个IP为15. Redis中Hyperloglog占据的每个密钥的内容为12K,理论存储近2^64值。无论存储内容是什么,估计基础只能更准确。使用少量的固定内存存储并识别集合中的唯一元素。而且,估计的基础不一定准确,这是一个近似值具有0.81%标准错误的值(对于可以接受某些容错性的业务方案,例如IP数字统计,紫外线等,可以忽略)。
Bitmap上升图的数据结构是操作仅记录的二进制位置,仅0和1状态。
例如:统计用户信息,活动性,UnvoFit!登录,不登录!选择,请勿检查!两种状态都可以使用位图!
一年的存储需要多少内存?365天= 365位1字节= 8bit 46字节!
使用位图从星期一到周日记录!星期一:1星期二:0星期三:0星期四:1 ......
看看有一天是否有拳!
统计操作,计算支票的天数!
Redis的Geo在Redis 3.2版本中启动!此功能可以计算地理信息:两个地方之间的距离,正方形中的人。
添加地理位置
规则
这两个级别无法直接添加,我们通常下载城市数据(此URL可以查询地理:http://www.jsons.cn/lngcode)!
获得指定成员的经度和纬度
获得当前定位必须是坐标值!
如果不存在,请返回空
该单元如下
附近的人==>获得附近所有人的地址,定位和查询半径
那些获得指定数量的人
参数密钥经度纬度半径单元[显示结果和纬度] [显示结果的距离] [结果的结果数]
显示一定半径范围的指定成员的显示和指定成员
参数与Georadius相同
此命令返回11个字符的哈希字符串
将两个维度的纬度和经度转换为一个维度。如果两个字符串越接近,则距离越近
GEO底层的实现原理实际上是ZSET。我们可以通过zset命令操作地理
查看所有元素删除指定元素