本文详细介绍了Redis一些复杂命令的使用,包括Redis事务相关命令,如MULTIEXECDISCARDWATCH ,发布订阅操作命令,如PUBLISH 、SUBSCRIBE 、PSUBSCRIBE ,BitMap操作命令,如SETBIT、GETBIT、BITCOUNT、BITOP,HyperLogLog 操作命令PFADD、PFCOUNT、PFMERGE,GEO命令如GEOADD、GEODIST、GEORADIUS,以及性能测试命令redis-benchmark等等

本文目录

      • 一、Redis 事务
      • 二、发布订阅操作命令
      • 三、BitMap 操作命令
      • 四、HyperLogLog 操作命令
      • 五、Geo操作命令
      • 六、benchmark 性能测试

一、Redis 事务

Redis 事务通过 MULTIEXECDISCARDWATCH 命令实现。事务可以将多个命令打包,按顺序执行,并且在执行过程中不会被其他客户端的命令打断。

MULTI :开启一个事务。
EXEC :执行事务中的所有命令
DISCARD: 取消事务。
WATCH :用于监视一个或多个键,若在事务执行前这些键被其他客户端修改,则事务会被取消。

MULTI
SET name r
GET name
EXEC

以上命令将 SETGET 命令打包成一个事务执行。

二、发布订阅操作命令

Redis 的发布-订阅功能允许客户端订阅一个或多个频道,当有其他客户端向这些频道发布消息时,订阅者会收到相应的消息。

PUBLISH <channel> <message>:向指定的频道 channel 发布一条消息 message
SUBSCRIBE <channel> [channel ...]:订阅一个或多个频道。
PSUBSCRIBE <pattern> [pattern ...]:订阅符合指定模式的频道。

三、BitMap 操作命令

  • 设置与获取位值

    • SETBIT <key> <offset> <value>:将键 key 对应的 BitMap 中偏移量为 offset 的位设置为 value(0 或 1)。
    • GETBIT <key> <offset>:获取键 key 对应的 BitMap 中偏移量为 offset 的位的值。
  • 位统计与操作

    • BITCOUNT <key> [start end]:统计键 key 对应的 BitMap 中值为 1 的位的数量,可指定统计的字节范围。
    • BITOP <operation> <destkey> <key1> [key2 ...]:对多个 BitMap 进行位运算(如 AND、OR、XOR、NOT),结果存储在 destkey 中。
  • BitMap 应用场景
    BitMap 是一种以位为单位进行存储的数据结构,每个位只能存储 0 或 1。在 Redis 中,BitMap 可以使用字符串类型来实现。

应用场景
- 用户签到:可以使用一个 BitMap 来记录用户的签到情况,每个位对应一天,签到则将该位置为 1,未签到则为 0。
- 在线用户统计:通过 BitMap 记录每个用户的在线状态,统计在线用户数量。

四、HyperLogLog 操作命令

HyperLogLog 是一种用于估算集合中唯一元素数量的概率性数据结构,它在占用极小内存的情况下可以对大量数据的基数进行近似统计。

  • 命令
    • PFADD <key> <element> [element ...]:向 HyperLogLog 中添加一个或多个元素。
    • PFCOUNT <key> [key ...]:估算 HyperLogLog 中唯一元素的数量,可同时对多个 HyperLogLog 进行统计。
    • PFMERGE <destkey> <sourcekey1> [sourcekey2 ...]:将多个 HyperLogLog 合并为一个,结果存储在 destkey 中。

五、Geo操作命令

Redis 的 Geospatial 功能用于存储和处理地理空间数据,如地理位置的经纬度信息。基于有序集合(ZSet)实现,通过将经纬度转换为一个分数进行存储。

  • 命令
    • GEOADD <key> <longitude> <latitude> <member> [longitude latitude member ...]:向键 key 对应的地理空间集合中添加一个或多个地理位置信息。
    • GEODIST <key> <member1> <member2> [unit]:计算键 key 对应的地理空间集合中两个成员之间的距离,可指定单位(如 m、km、mi、ft)。
    • GEORADIUS <key> <longitude> <latitude> <radius> <unit> [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]:查询键 key 对应的地理空间集合中距离指定经纬度 radius 范围内的成员,可选择返回成员的经纬度、距离等信息。

六、benchmark 性能测试

Redis 自带 redis - benchmark 工具,可用于对 Redis 进行性能测试。能模拟多个客户端同时向 Redis 服务器发送请求,测试 Redis 在不同场景下的性能指标,如 QPS(每秒查询率)、响应时间等。也可通过指定不同的参数,如客户端数量、请求数量、请求类型等,来模拟不同的业务场景,评估 Redis 在高并发情况下的性能表现。

  • 命令
redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000

此命令表示使用 100 个客户端同时向 127.0.0.1:6379 的 Redis 服务器发送 100000 个请求进行性能测试。



← 上一篇 MySQL——表添加索引多种方式
记得点赞、关注、收藏哦!
下一篇 JUC小册——公平锁和非公平锁 →

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90097.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90097.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/90097.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#使用socket报错 System.Net.Sockets.SocketException:“在其上下文中,该请求的地址无效。

bind: 在其上下文中&#xff0c;该请求的地址无效。问题定位 程序中运行socket服务端程序时&#xff0c;绑定的IP地址无效&#xff0c;即请求的IP地址在你的机子上找不到。原因有以下几种可能&#xff1a; 1&#xff09;server端绑定的IP地址不是本机的IP地址。 2&#xff09;之…

计算机底层入门 05 汇编学习环境通用寄存器内存

2.3 汇编学习环境我们通过上一章笔记&#xff0c;得知 计算机好像 只会通过位运算 进行 数字的加法。 而机器语言的魅力就是 位运算&#xff0c;解析规则。它们也都是通过 电路 来进行实现的。这就是 计算机最底层的本质了&#xff01;&#xff01;&#xff01; 汇编语言 所谓的…

Java学习---Spring及其衍生(上)

在 Java 开发领域&#xff0c;Spring 生态占据着举足轻重的地位。从最初的 Spring 框架到后来的 SpringBoot、SpringMVC 以及 SpringCloud&#xff0c;每一个组件都在不同的场景下发挥着重要作用。本文将深入探讨这几个核心组件&#xff0c;包括它们的定义、原理、作用、优缺点…

LVGL应用和部署(个人开发嵌入式linux产品)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】随着经济越来越走向常态化发展&#xff0c;将来的公司基本是两个趋势&#xff0c;一个是公司越做越大&#xff0c;越来越趋向于垄断&#xff1b;另外…

CPU,减少晶体管翻转次数的编码

背景 以4比特为单位&#xff0c;共16个数。仔细思考状态转换过程中的晶体管翻转次数。 0000 0001&#xff0c;1 0010&#xff0c;2 0011&#xff0c;1 0100&#xff0c;3 0101&#xff0c;1 0110&#xff0c;2 0111&#xff0c;1 1000&#xff0c;4 1001&#xff0c;1 1010&…

LLM 中的 温度怎么控制随机性的?

LLM 中的 温度怎么控制随机性的? 在LLM的解码过程中,温度(Temperature)通过调整token概率分布的“陡峭程度”来控制随机性:温度越低,概率分布越陡峭(高概率token的优势越明显),随机性越低;温度越高,分布越平缓(高低概率token的差异被缩小),随机性越高。 温度,…

freemodbus使用

文章目录✅ **CubeMX配置**1. UART配置&#xff08;RS485通信&#xff09;2. Timer配置&#xff08;RTU字符间隔检测&#xff09;3. GPIO配置&#xff08;RS485方向控制&#xff09;✅ **STM32F103 RS485 FreeModbus RTU 配置概览****1️⃣ CubeMX硬件配置****2️⃣ FreeModb…

【Ansible】Ansible 管理 Elasticsearch 集群启停

一、集群节点信息 通过 Ansible inventory 定义的集群节点分组如下&#xff1a;[es]&#xff08;Elasticsearch 节点&#xff09; 192.168.100.150192.168.100.151192.168.100.152[logstash]&#xff08;Logstash 节点&#xff09; 192.168.100.151[kibana]&#xff08;Kibana …

Effective Python 第15条 不要过分依赖给字典添加条目时所用的顺序

引言&#xff1a;字典顺序的重要性 在Python编程中&#xff0c;字典&#xff08;dict&#xff09;是一种常用的数据结构&#xff0c;用于存储键值对。然而&#xff0c;字典的迭代顺序问题常常困扰着开发者。从Python 3.7开始&#xff0c;字典保证了键的插入顺序&#xff0c;这一…

事务隔离级别和传播方式

事务隔离级别 事务隔离级别是数据库系统中控制事务间相互影响程度的重要机制。不同的隔离级别在数据一致性保证和系统性能之间提供不同的权衡选择。下面我将详细解析四种标准隔离级别、它们能解决的问题以及可能存在的并发问题。 一、四种标准隔离级别 1. 读未提交 (Read Uncom…

不同地区的主要搜索引擎工具

研究seo&#xff0c;想汇总一下不同国家的搜索引擎工具&#xff0c;顺带了解一下这些公司提供的服务。 韩国&#xff1a;NAVER——>LINE 日本: 我还不知道&#xff0c;如果你知道可以评论告诉我 俄罗斯&#xff1a;yandex yandex有点像本土化的google 搜索引擎 邮箱 网盘 在…

实操:AWS CloudFront的动态图像转换

概述 适用于 Amazon CloudFront 的动态图像转换&#xff08;前身为无服务器图像处理器&#xff09;&#xff0c;通过 Amazon CloudFront 的全球内容分发网络&#xff08;CDN&#xff09;实现实时图像处理。此 AWS 解决方案可帮助您优化视觉内容交付&#xff0c;同时显著降低运营…

Spring Boot 实战详解:从静态资源到 Thymeleaf 模板引擎

Spring Boot 凭借其 "约定大于配置" 的理念&#xff0c;极大简化了 Java 应用开发流程。本文将从 Spring Boot 核心特性出发&#xff0c;详细解析静态资源映射规则、Thymeleaf 模板引擎的使用&#xff0c;并结合完整实战案例&#xff0c;帮助开发者快速上手 Spring B…

docker的镜像与推送

docker build# 1. 基本构建命令&#xff08;使用当前目录的 Dockerfile&#xff09; docker build .# 2. 指定 Dockerfile 路径和构建上下文 docker build -f /path/to/Dockerfile /path/to/build/context# 3. 为镜像设置名称和标签 docker build -t my-image:latest .# 4. 设置…

计算机网络学习----域名解析

在互联网世界中&#xff0c;我们习惯通过域名&#xff08;如www.example.com&#xff09;访问网站&#xff0c;而非直接记忆复杂的 IP 地址&#xff08;如 192.168.1.1&#xff09;。域名与 IP 地址之间的转换过程&#xff0c;就是域名解析。它是互联网通信的基础环节&#xff…

构建高性能推荐系统:MixerService架构解析与核心实现

——深入剖析推荐服务的分层设计、工作流引擎与高可用策略 一、整体架构与分层设计 该推荐服务采用经典分层架构模式​7&#xff0c;各层职责清晰&#xff1a; ​HTTP接口层​ 支持 GET/POST 请求解析&#xff0c;自动映射参数到 RcmdReq 协议对象统一错误处理&#xff1a;参…

【安全漏洞】隐藏服务器指纹:Nginx隐藏版本号配置修改与重启全攻略

🚀 隐藏服务器指纹:Nginx配置修改与重启全攻略 你是否知道,默认情况下Nginx会在HTTP响应头中暴露版本号?这个看似无害的Server: nginx/1.x.x字段,实则可能成为黑客的"藏宝图"。今天我们就来揭秘如何通过简单配置提升服务器安全性,并手把手教你完成Windows环境…

构建RAG智能体(2):运行状态链

在现代AI应用开发中&#xff0c;如何让聊天机器人具备记忆能力和上下文理解是一个核心挑战。传统的无状态对话系统往往无法处理复杂的多轮对话场景&#xff0c;特别是当用户需要提供多种信息来完成特定任务时。 本文就来讨论一下如何利用runnable来编排更有趣的语言模型系统&a…

RPA认证考试全攻略:如何高效通过uipath、实在智能等厂商考试

rpa认证考试有什么作用&#xff1f;数字洪流席卷全球&#xff0c;企业效率之争已进入秒级战场。当重复性工作吞噬着创造力&#xff0c;RPA&#xff08;机器人流程自动化&#xff09;技术正以前所未有的速度重塑职场生态。财务对账、报表生成、跨系统数据搬运……这些曾经耗费人…

浅析MySQL事务隔离级别

MySQL 的事务隔离级别定义了多个并发事务在访问和修改相同数据时&#xff0c;彼此之间的可见性和影响程度。它解决了并发事务可能引发的三类核心问题&#xff1a; 脏读&#xff1a; 一个事务读取了另一个未提交事务修改的数据。不可重复读&#xff1a; 一个事务内多次读取同一行…