redis实战第十二篇 redis cluster请求重定向

2024-06-22 19:18

本文主要是介绍redis实战第十二篇 redis cluster请求重定向,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在集群模式下,redis在接收到键任何命令时会先计算该键所在的槽,如果改键所在的槽位于当前节点,则直接执行命令,如果改键位于其它节点,则不执行该命令,返回重定向信息。
比如hello这个键槽866上,而曹866位于31节点上,假设在32上执行get hello ,则会返回重定向信息。

127.0.0.1:6380> get hello
(error) MOVED 866 192.168.0.31:6380

重定向信息中包含了键所在的槽,已经槽所在的节点信息。

1.查找键所在的节点信息
可以通过以下命令获取键所在的槽信息

127.0.0.1:6380> cluster keyslot hello
(integer) 866

再通过cluster nodes获取槽所在节点的信息,就可以知道键所在的节点信息。

2.使用-c参数来自动重定向
在使用redis-cli时,可以加上-c参数,这样redis会自动帮我们连接到正确的节点执行命令。

[root@kafka32 ~]# redis-cli -a password -p 6380 -c
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6380> get hello
-> Redirected to slot [866] located at 192.168.0.31:6380
"cluster"

3.hash_tag
如果键中包含{},则集群在计算槽时会使用{}内的内容,而不是整个键,{}内的内容又称为hash_tag。它提供不同的键拥有相同的slot功能,通常用于redis IO优化。

[root@kafka32 ~]# redis-cli -a 1234@abcd -p 6380 -c
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
不加{},age和id会被放到不同的槽中
192.168.02.31:6380> set user:info:age 18
-> Redirected to slot [8325] located at 192.168.0.32:6380
OK
192.168.0.32:6380> set user:info:id "1234121"
-> Redirected to slot [15358] located at 192.168.0.33:6380
OK加上{},所有的键都位于同一个槽中
192.168.0.32:6380> set user:{info}:id "232132"
OK
192.168.0.32:6380> set user:{info}:age 20
OK
192.168.0.32:6380> set user:{info}:name peter
OK
192.168.0.32:6380> set user:{info}:email "132132@163.com"
OK

这篇关于redis实战第十二篇 redis cluster请求重定向的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085172

相关文章

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis延迟队列的实现示例

《Redis延迟队列的实现示例》Redis延迟队列是一种使用Redis实现的消息队列,本文主要介绍了Redis延迟队列的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、什么是 Redis 延迟队列二、实现原理三、Java 代码示例四、注意事项五、使用 Redi

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

深入理解Redis大key的危害及解决方案

《深入理解Redis大key的危害及解决方案》本文主要介绍了深入理解Redis大key的危害及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、背景二、什么是大key三、大key评价标准四、大key 产生的原因与场景五、大key影响与危

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维