前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis HyperLogLog命令操作实例

Redis HyperLogLog命令操作实例

原创
作者头像
用户1503405
修改2021-10-08 15:24:09
6560
修改2021-10-08 15:24:09
举报
文章被收录于专栏:棒棒小飞人棒棒小飞人

Redis HyperLogLog命令

Redis HyperLogLog是一种使用随机化的算法,以少量内存提供集合中唯一元素数量的近似值。比如 {‘apple’, ‘banana’, ‘cherry’, ‘banana’, ‘apple’} 基数为3 优点:即使输入元素的数量或者体积非常非常大,计算基数所需的空间总是固定的12 KB 内存。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。 缺点:只会根据输入元素来计算基数,并且会有少许的误差。

编号

命令

描述

1

PFADD key element [element …]

将指定的元素添加到指定的HyperLogLog 中。

2

PFCOUNT key [key …]

返回给定 HyperLogLog 的基数估算值。

3

PFMERGE destkey sourcekey [sourcekey …]

将多个 HyperLogLog 合并为一个 HyperLogLog

Redis发送订阅

发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑。 Redis事务

事务可以一次执行多个命令, 并且带有以下两个重要的保证:

  • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
  • 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。 管道Pipelining

过去:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应 现在:在旧的请求还未响应前,新的请求也能发送到服务器并处理。这样就可以将多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。 Redis Lua 脚本

功能强大,可以实现事务,管道等功能。并且读取延时更小。 将Redis当做使用LRU算法的缓存来使用

大量插入数据

分区(Partitioning):如何将你的数据分布在多个Redis里面

分区是将数据拆分为多个Redis实例的过程,因此每个实例只包含一部分键。

分区的优点: 它允许更大的数据库,使用更多计算机的内存总和。如果没有分区,则限制为单个计算机可以支持的内存量。 它允许将计算能力扩展到多个核心和多个计算机,并将网络带宽扩展到多个计算机和网络适配器。

缺点:操作更加复杂

分区类型

Redis中有两种类型的分区。假设有四个Redis实例:R0,R1,R2,R3以许多代表用户的键,如user:1,user:2,…等等。

  • 范围分区 范围分区通过将对象的范围映射到特定的Redis实例来实现。假设在上面示例中,从ID 0到ID 10000的用户将进入实例R0,而从ID 10001到ID 20000的用户将进入实例R1,以此类推。
  • 哈希分区 在这种类型的分区中,使用散列函数(例如,模函数)将键转换成数字,然后将数据存储在不同的Redis实例中。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Redis HyperLogLog命令
  • Redis发送订阅
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档