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

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.kler.cn/a/373585.html

相关文章:

  • 记录一下方便的条件编译
  • nginx配置https及url重写
  • 探索 JavaScript 事件机制(五):Vue 事件系统
  • Spring自动装配(特别版)
  • 支付宝自动扣款如何关闭服务
  • Go使用SIMD指令——以string转为整数为例
  • 基于vue框架的的驾校预约车辆管理系统设计与实现jwoqj(程序+源码+数据库+调试部署+开发环境)系统界面在最后面
  • [瑞吉外卖]-10前后端分离
  • Vue3学习:vue组件中的图片路径问题
  • 字符函数和字符串函数(C 语言)
  • 微服务电商平台课程二:技术图谱
  • AI产品独立开发变现实战营,炒掉老板做自由职业赚大钱
  • 【vue 全家桶】1、vue 基础
  • Pytorch学习--DataLoader的使用
  • 验证工程师如何使用UVM
  • springcloud网关和熔断配置
  • YOLOv11改进策略【SPPF】| NeuralPS-2022 Focal Modulation : 使用焦点调制模块优化空间金字塔池化SPPF
  • C++变量声明与定义(有对引用的解释)
  • 【网络】传输层协议TCP(中)
  • 对csv文件进行分组和排序详解(使用面部表情数据集fer2013)
  • 新160个crackme - 088-[KFC]fish‘s CrackMe
  • Spring5学习记录(二)之IOC容器管理(基于注解方式)
  • Python(包和模块)
  • VB中的安全性考虑,如防止SQL注入、XSS攻击等
  • 【安全解决方案】深入解析:如何通过CDN获取用户真实IP地址
  • 「Mac畅玩鸿蒙与硬件6」鸿蒙开发环境配置篇6 - 理解鸿蒙项目结构