当前位置: 首页 > news >正文

Redis新数据类型

新数据类型

Bitmaps

命令

setbit

实例

getbit

实例

bitcount

实例

bitop

实例

Bitmaps与set 对比

HyperLogLog

命令

pfadd

实例

pfcount

实例

pfmerge

实例

Geospatial

命令

geoadd

实例

geopos

实例

geodist 

实例

georadius

实例


Bitmaps

Ⅰ.Bitmaps 本身不是一种数据类型,实际上它就是字符串(key-value ),但是它可以对字符串的位进行操作。
Ⅱ.Bitmaps 单独提供了一套命令,所以在 Redis 中使用 Bitmaps 和使用字符串的方法不太相同。 可以把 Bitmaps 想象成一个以位为单位的数组数组的每个单元只能存储0和1,数组的标在 Bitmaps 中叫做偏移量。

命令

setbit

setbit<key><offset><value>设置 Bitmaps 中某个偏移量的值(0或1)

offset:偏移量从0开始

实例

没设置的都为0

getbit

getbit<key><offset>获取 Bitmaps 中某个偏移量的值

获取键的第 offset 位的值(从0开始算)

实例

bitcount

统计字符串被设置为1的 bit数。一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。start 和 end 参数的设置,都可以使用负数值:比如 -1 表示最后一个位,而 -2 表示倒数第二个位,start、end 是指 bit 组的字节的下标数,二者皆包含。

bitcount<key>[start end]统计字符串从 start 字节到 end 字节比特值为1的数量 

实例

bitop

bitop and(or/not/xor)<destkey> [key...]

bitop 是一个复合操作,它可以做多个 Bitmaps的and(交集)、or(并集)、 not(非)、xor(异或)操作并将结果保存在 destkey 中。

实例

Bitmaps与set 对比

所以数据多时Bitmaps才更省空间

HyperLogLog

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且是很小的。

命令

pfadd

pfadd <key>< element>[element.] 添加指定元素到 HyperLogLog 中

实例

这里还可以同时加多个"" ""

       将所有元素添加到指定 HyperLogLog 数据结构中。如果执行命令后 HLL估计的近似基数发生变化,则返回1,否则返回 0。

pfcount

pfcount<key> [key ….]计算 HLL的近似基数,可以计算多个 HLL,比如用 HLL 存储每天的 UV,计算一周的 UV 可以使用7 天的 UV 合并计算即可

实例

pfcount hll1 "redis"

pfmerge

pfmerge<destkey><sourcekey>[sourcekey ..]将一个或多个 HLL 合并后的结果存储在另一个HLL中,比如每月活跃用户可以使用每天的活跃用户来合并计算可得

实例

将hll1和hll2合并到hll3

Geospatial

命令

geoadd

gegadd<key>< longitude><latitude><member> [longitude latitude member...] 添加地理位置(经度,纬度,名称)。

实例

geopos

geopos <key><member>[member...]获得指定地区的坐标值

实例

geoadd china:city shanghai

geodist 

geodist<key><member1><member2>[m|km|ft|mi] 获取两个位置之间的直线距离

实例

m 表示单位为米[默认值]。

km 表示单位为千米。

mi 表示单位为英里。

ft 表示单位为英尺。

georadius

georadius<key>< longitude><latitude>radius m|km|ft|mi 以给定的经纬度为中心
找出某一半径内的元素。

实例


http://www.mrgr.cn/news/62911.html

相关文章:

  • HarmonyOS生命周期
  • 如何在短时间内入门并掌握深度学习?
  • 多线程案例---单例模式
  • 中小企业设备资源优化:Spring Boot系统实现
  • AIGC实战——生成式人工智能总结与展望
  • 深入了解 Three.js 中的材质与光照
  • 科研修图Adobe全家桶access
  • ANA基因组数据库(ANAgdb)
  • 【Leetcode】单调栈
  • 强化学习DQN实践(gymnasium+pytorch)
  • 人工智能生产力悖论:为什么大多数人没用上AI工具?
  • 得物App获评新奖项,正品保障夯实供应链创新水平
  • 今年双11,拼多多吹“新”风
  • tinyint数据库类型
  • SPA——MVC 与 MVVM - 2024最新版前端秋招面试短期突击面试题【100道】
  • 【测试工具】通过Jmeter压测存储过程
  • Git学习记录
  • 14. 不修改数组找出重复的数字
  • 【论文速读】Optimization-based Prompt Injection Attack to LLM-as-a-Judge
  • Python 从入门到实战43(Pandas数据结构)
  • 哈希函数简介
  • 【调试记录】CARLA车辆actor设置BehaviorAgent自动规划后不沿道路行驶
  • Terraform Provider 加速方案
  • 什么是 Spring Cloud Bus?我们需要它吗?
  • 【AI日记】24.10.31 学习LangChain和寻找AI研究报告(比如麦肯锡)
  • ROS(快速初步入门)