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

Redis新操作

1.Bitmaps

1.1概述

Bitmaps可以对进行操作,实际上它就是一个字符串,可以将Bitmaps想象为一个以位为单位的数组,数组中的每个元素只能存储0或者1,数组的下标在Bitmaps被称为偏移量。

  • setbit key offset value:设置offset位为value,offset偏移量从0开始。

  • getbit key offset:获取某个偏移量的值。

  • bitcount key:统计比特值为1的数量。

  • bitop and(or/xor) destkey key1 key2....:将key1和key2做复合操作,将结果放到destkey中。

案例:可以用来统计网站某两天内有哪些共同用户访问。

 

 

1.2Bitmap和Set做比较

Bitmap的优势

 发现在活跃用户量大的情况下,Bitmaps比set更加的节省内存空间。

Bitmap的劣势

发现在活跃用户量较少的情况下,还是set会比较好。

2.HyperLogLog

当我们遇到统计相关的需求时,因为要考虑到去重,所以我们经常会使用set,但是随着数据不断增加,会导致占用空间越来越大。为了降低一定的精度来平衡存储空间,推出了HyperLogLog,它计算基数所需的空间总是固定的,并且是很小的。

但是,HyperLogLog只会根据输入元素来计算基数的个数,并不能输出里面的元素。

  • pfadd key element1 element2....:添加指定的元素。

  • pfcount key:统计元素个数。

  • pfmerge destkey key1 key2:将key1和key2中的元素合并去重放到destkey中。

3.Geospatial

Redis增加了地理信息的支持,注意输入的经纬度的格式必须是:(121.43333,34.50000) 这种。

  • geoadd key 经度 纬度 城市名 .....:添加经纬度。

  • geopos key 城市名:获取指定地区的坐标值。

  • geodist key 城市1 城市2 m/km:获取两个城市之间的直线距离。

  • georadius key 经度 纬度 半径 单位:给定经纬度为中心,找出某一半径内的元素。

http://www.lryc.cn/news/234733.html

相关文章:

  • Panda3d 外部硬件接口介绍
  • 解决Redis分布式锁宕机出现不可靠问题-zookeeper分布式锁
  • mac系统安装docker desktop
  • 【机器学习基础】机器学习的基本术语
  • 区别Vue 2.0 和 Vue 3.0
  • react antd下拉选择框选项内容换行
  • 图像分类(一) 全面解读复现AlexNet
  • JAXB实现XML和Bean相互转换
  • 视频剪辑技巧:简单步骤,批量剪辑并随机分割视频
  • Vue3-shallowRef 和 shallowReactive函数(浅层次的响应式)
  • ExoPlayer架构详解与源码分析(8)——Loader
  • ExoPlayer架构详解与源码分析(9)——TsExtractor
  • 【Python 千题 —— 基础篇】输出列表方差
  • 【Spring总结】基于配置的方式来写Spring
  • Unity在Windows选项下没有Auto Streaming
  • 下厨房网站月度最佳栏目菜谱数据获取及分析
  • 【Java 进阶篇】深入理解 JQuery 事件绑定:标准方式
  • 某app c++层3处魔改md5详解
  • 安装MongoDB
  • C++加持让python程序插上翅膀——利用pybind11进行c++和python联合编程示例
  • ubuntu20.04安装cv2
  • Android 13.0 recovery出厂时清理中字体大小的修改
  • spring+pom-注意多重依赖时的兼容问题[java.lang.NoSuchMethodError]
  • Matalab插值详解和源码
  • Flask 接口
  • Vue3 toRef函数和toRefs函数
  • 【论文阅读】(VAE-GAN)Autoencoding beyond pixels using a learned similarity metric
  • verilog之wire vs reg区别
  • 力扣面试经典150题详细解析
  • 【Java 进阶篇】唤醒好运:JQuery 抽奖案例详解