rediscluster

scala操作RedisCluster package calc.bi.udfutils import redis.clients.jedis.JedisCluster import redis.clients.jedis.HostAndPort import redis.clients.jedis.ScanParams import scala.collection.mutable.ListBuffer import scala.co... 阅读详情

1.cluster的安装与配置

[root@server1 local]# pwd
/usr/local
[root@server1 local]# mkdir rediscluster
[root@server1 local]# cd rediscluster/
[root@server1 rediscluster]# mkdir 7001
[root@server1 rediscluster]# mkdir 7002
[root@server1 rediscluster]# mkdir 7003
[root@server1 rediscluster]# mkdir 7004
[root@server1 rediscluster]# mkdir 7005
[root@server1 rediscluster]# mkdir 7006
[root@server1 rediscluster]# sysctl -a | grep range
net.ipv4.ip_local_port_range = 32768    61000
net.ipv4.ping_group_range = 1   0
[root@server1 rediscluster]# cd 7001/
[root@server1 7001]# vim redis.conf
port 7001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes       ##打入后台
[root@server1 7001]# cp redis.conf ../7002/ ##更改端口为7002
[root@server1 7001]# cp redis.conf ../7003/ ##更改端口为7003
[root@server1 7001]# cp redis.conf ../7004/ ##更改端口为7004
[root@server1 7001]# cp redis.conf ../7005/ ##更改端口为7005
[root@server1 7001]# cp redis.conf ../7006/ ##更改端口为7006
[root@server1 7001]# redis-server redis.conf
[root@server1 7002]# redis-server redis.conf
[root@server1 7003]# redis-server redis.conf
[root@server1 7004]# redis-server redis.conf
[root@server1 7005]# redis-server redis.conf
[root@server1 7006]# redis-server redis.conf

[root@server1 redis]# cd redis-4.0.8/src/
[root@server1 src]# file redis-trib.rb 
redis-trib.rb: a /usr/bin/env ruby script text executable
[root@server1 src]# cp redis-trib.rb /usr/local/bin/
[root@server1 ~]# yum install ruby -y
[root@server1 ~]# yum install -y rubygems-1.3.7-5.el6.noarch.rpm
[root@server1 ~]# gem list ##未添加

*** LOCAL GEMS ***
[root@server1 ~]# yum install libyaml-0.1.3-4.el6_6.x86_64.rpm -y
[root@server1 ~]# yum update ruby-2.2.3-1.el6.x86_64.rpm -y
[root@server1 ~]# gem install --local redis-4.0.1.gem
[root@server1 ~]# gem list ##添加成功

*** LOCAL GEMS ***

bigdecimal (1.2.6)
io-console (0.4.3)
json (1.8.1)
minitest (5.4.3)
power_assert (0.2.2)
psych (2.0.8)
rake (10.4.2)
rdoc (4.2.0)
redis (4.0.1)
test-unit (3.0.8)

2.添加集群

[root@server1 ~]# redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006

查看
[root@server1 ~]# redis-cli -c -p 7001
127.0.0.1:7001> CLUSTER INFO        ##打印集群的信息

127.0.0.1:7001> CLUSTER NODES       ##列出集群当前已知的所有节点(node),以及这些节点的相关信息


查看的方法(得确定集群入口,任意一个都可以)
[root@server1 ~]# redis-trib.rb info 127.0.0.1:7001
127.0.0.1:7001 (bade9576...) -> 0 keys | 5461 slots | 1 slaves.
127.0.0.1:7002 (b23f2af5...) -> 0 keys | 5462 slots | 1 slaves.
127.0.0.1:7003 (13be79bf...) -> 0 keys | 5461 slots | 1 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.

查看的方法
[root@server1 ~]# redis-trib.rb check 127.0.0.1:7001
>>> Performing Cluster Check (using node 127.0.0.1:7001)
M: bade95761f0dc0eb9962f9e99c66084f7ce21acf 127.0.0.1:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 00748939f46541df6edea999b4fa2a174aa280fb 127.0.0.1:7005
   slots: (0 slots) slave
   replicates bade95761f0dc0eb9962f9e99c66084f7ce21acf
S: 4fcf8252d1c8e25c919b161125b79d1cc1ccfd81 127.0.0.1:7004
   slots: (0 slots) slave
   replicates 13be79bfaea70ca739ce1b833e3fd84e32589174
M: b23f2af5911e1559034a62d441d13cae9ff0d386 127.0.0.1:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: f9ba798573b1d0cc494cf2a53657d352959157ae 127.0.0.1:7006
   slots: (0 slots) slave
   replicates b23f2af5911e1559034a62d441d13cae9ff0d386
M: 13be79bfaea70ca739ce1b833e3fd84e32589174 127.0.0.1:7003
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.


当宕掉一个的时候,其相对应的slave就会自动生成master
再次删除集群停止工作(因为其槽有空余没分发出去,需重新启动宕机服务器或者重新分配)
停机超过一时集群自动停止工作(方法是增加工作机器数量)

3.cluster常用操作

1.添加主节点

[root@server1 7007]# redis-trib.rb add-node 127.0.0.1:7007 127.0.0.1:7001       ##添加主节点,后跟集群中任一节点

可以看到.使用addnode命令来添加节点,第一个参数是新节点的地址,第二个参数是任意一个已经存在的节点的IP和端口. 我们可以看到新的节点已经添加到集群中:

redis 127.0.0.1:7007> cluster nodes
3e3a6cb0d9a9a87168e266b0a0b24026c0aae3f0 127.0.0.1:7002 master - 0 1385543178575 0 connected 5960-10921
3fc783611028b1707fd65345e763befb36454d73 127.0.0.1:7005 slave 3e3a6cb0d9a9a87168e266b0a0b24026c0aae3f0 0 1385543179583 0 connected
f093c80dde814da99c5cf72a7dd01590792b783b :0 myself,master - 0 0 0 connected
2938205e12de373867bf38f1ca29d31d0ddb3e46 127.0.0.1:7003 slave 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 0 1385543178072 3 connected
a211e242fc6b22a9427fed61285e85892fa04e08 127.0.0.1:7004 slave 97a3a64667477371c4479320d683e4c8db5858b1 0 1385543178575 0 connected
97a3a64667477371c4479320d683e4c8db5858b1 127.0.0.1:7001 master - 0 1385543179080 0 connected 0-5959 10922-11422
3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 127.0.0.1:7006 master - 0 1385543177568 3 connected 11423-16383

新节点现在已经连接上了集群, 成为集群的一份子, 并且可以对客户端的命令请求进行转向了, 但是和其他主节点相比, 新节点还有两点区别:

    新节点没有包含任何数据, 因为它没有包含任何哈希槽.
    尽管新节点没有包含任何哈希槽, 但它仍然是一个主节点, 所以在集群需要将某个从节点升级为新的主节点时, 这个新节点不会被选中。

接下来, 只要使用 redis-trib 程序, 将集群中的某些哈希桶移动到新节点里面, 新节点就会成为真正的主节点了。

2.添加从节点

[root@server1 7008]# redis-trib.rb add-node --slave  127.0.0.1:7008 127.0.0.1:7007  ##添加从节点,后跟集群中任一节点,系统随机分配主节点
[root@server1 7008]# redis-trib.rb add-node --slave --master-id 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 127.0.0.1:7006 127.0.0.1:7000 ##添加从节点,指定添加从节点的主节点

也可以使用CLUSTER REPLICATE 命令添加.这个命令也可以改变一个从节点的主节点。
例如,要给主节点 127.0.0.1:7005添加一个从节点,该节点哈希槽的范围1423-16383, 节点 ID 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e,我们需要链接新的节点(已经是空的主节点)并执行命令:
redis 127.0.0.1:7006> cluster replicate 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
我们新的从节点有了一些哈希槽,其他的节点也知道(过几秒后会更新他们自己的配置),可以使用如下命令确认:
$ redis-cli -p 7000 cluster nodes | grep slave | grep 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
f093c80dde814da99c5cf72a7dd01590792b783b 127.0.0.1:7006 slave 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e 0 1385543617702 3 connected
2938205e12de373867bf38f1ca29d31d0ddb3e46 127.0.0.1:7002 slave 3c3a0c74aae0b56170ccb03a

3.移除节点

[root@server1 7008]# redis-trib del-node 127.0.0.1:7000 `<node-id>`         ##移除一个结点,前为任一节点,后为要删除节点

使用同样的方法移除主节点,不过在移除主节点前,需要确保这个主节点是空的. 如果不是空的,需要将这个节点的数据重新分片到其他主节点上.
替代移除主节点的方法是手动执行故障恢复,被移除的主节点会作为一个从节点存在,不过这种情况下不会减少集群节点的数量,也需要重新分片数据.

4.从结点的迁移

从节点的迁移
在Redis集群中会存在改变一个从节点的主节点的情况,需要执行如下命令 :
CLUSTER REPLICATE <master-node-id>
在特定的场景下,不需要系统管理员的协助下,自动将一个从节点从当前的主节点切换到另一个主节 的自动重新配置的过程叫做复制迁移(从节点迁移),从节点的迁移能够提高整个Redis集群的可用性.

5.集群重新分片

现在, 让我们来试试对集群进行重新分片操作。在执行重新分片的过程中, 请让你的 example.rb 程序处于运行状态, 这样你就会看到, 重新分片并不会对正在运行的集群程序产生任何影响, 你也可以考虑将 example.rb 中的 sleep 调用删掉, 从而让重新分片操作在近乎真实的写负载下执行 重新分片操作基本上就是将某些节点上的哈希槽移动到另外一些节点上面, 和创建集群一样, 重新分片也可以使用 redis-trib 程序来执行 执行以下命令可以开始一次重新分片操作:

./redis-trib.rb reshard 127.0.0.1:7000

你只需要指定集群中其中一个节点的地址, redis-trib 就会自动找到集群中的其他节点。
目前 redis-trib 只能在管理员的协助下完成重新分片的工作, 要让 redis-trib 自动将哈希槽从一个节点移动到另一个节点, 目前来说还做不到

一、以下命令是Redis Cluster集群所独有的,执行下面命令需要先登录redis:

[root@manage redis]# redis-cli -c -p 6382 -h 192.168.10.12
192.168.10.12:6382>

//集群(cluster) 
CLUSTER INFO 打印集群的信息 
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。  

//节点(node) 
CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。 
CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。 
CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。 
CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。  

//槽(slot) 
CLUSTER ADDSLOTS <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。 
CLUSTER DELSLOTS <slot> [slot ...] 移除一个或多个槽对当前节点的指派。 
CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。 
CLUSTER SETSLOT <slot> NODE <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。 
CLUSTER SETSLOT <slot> MIGRATING <node_id> 将本节点的槽 slot 迁移到 node_id 指定的节点中。 
CLUSTER SETSLOT <slot> IMPORTING <node_id> 从 node_id 指定的节点中导入槽 slot 到本节点。 
CLUSTER SETSLOT <slot> STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。  

//键 (key) 
CLUSTER KEYSLOT <key> 计算键 key 应该被放置在哪个槽上。 
CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的键值对数量。 
CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 个 slot 槽中的键。

二,添加节点

1)新配置二个测试节点
# cd /etc/redis 

//新增配置 
# cp redis-6379.conf redis-6378.conf && sed -i "s/6379/6378/g" redis-6378.conf 
# cp redis-6382.conf redis-6385.conf && sed -i "s/6382/6385/g" redis-6385.conf 

//启动 
# redis-server /etc/redis/redis-6385.conf > /var/log/redis/redis-6385.log 2>&1 & 
# redis-server /etc/redis/redis-6378.conf > /var/log/redis/redis-6378.log 2>&1 & 

2)添加主节点
# redis-trib.rb add-node 192.168.10.219:6378 192.168.10.219:6379 
注释:
192.168.10.219:6378是新增的节点
192.168.10.219:6379集群任一个旧节点

3)添加从节点
# redis-trib.rb add-node --slave --master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2 192.168.10.220:6385 192.168.10.219:6379 
注释:
--slave,表示添加的是从节点
--master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2,主节点的node id,在这里是前面新添加的6378的node id
192.168.10.220:6385,新节点
192.168.10.219:6379集群任一个旧节点

4)重新分配slot
# redis-trib.rb reshard 192.168.10.219:6378               //下面是主要过程 
How many slots do you want to move (from 1 to 16384)? 1000 //设置slot数1000 
What is the receiving node ID? 03ccad2ba5dd1e062464bc7590400441fafb63f2 //新节点node id 
Please enter all the source node IDs. 
 Type 'all' to use all the nodes as source nodes for the hash slots. 
 Type 'done' once you entered all the source nodes IDs. 
Source node #1:all                                      //表示全部节点重新洗牌 
Do you want to proceed with the proposed reshard plan (yes/no)? yes //确认重新分 

新增加的主节点,是没有slots的,
M: 03ccad2ba5dd1e062464bc7590400441fafb63f2 192.168.10.219:6378
slots:0-332,5461-5794,10923-11255 (0 slots) master
主节点如果没有slots的话,存取数据就都不会被选中。
可以把分配的过程理解成打扑克牌,all表示大家重新洗牌;输入某个主节点的node id,然后在输入done的话,就好比从某个节点,抽牌。

5)查看一下,集群情况
[root@slave2 redis]# redis-trib.rb check 192.168.10.219:6379 
Connecting to node 192.168.10.219:6379: OK 
Connecting to node 192.168.10.220:6385: OK 
Connecting to node 192.168.10.219:6378: OK 
Connecting to node 192.168.10.220:6382: OK 
Connecting to node 192.168.10.220:6383: OK 
Connecting to node 192.168.10.219:6380: OK 
Connecting to node 192.168.10.219:6381: OK 
Connecting to node 192.168.10.220:6384: OK 
>>> Performing Cluster Check (using node 192.168.10.219:6379) 
M: 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052 192.168.10.219:6379 
 slots:5795-10922 (5128 slots) master 
 1 additional replica(s) 
S: 9c240333476469e8e2c8e80b089c48f389827265 192.168.10.220:6385 
 slots: (0 slots) slave 
 replicates 03ccad2ba5dd1e062464bc7590400441fafb63f2 
M: 03ccad2ba5dd1e062464bc7590400441fafb63f2 192.168.10.219:6378 
 slots:0-332,5461-5794,10923-11255 (1000 slots) master 
 1 additional replica(s) 
M: 19b042c17d2918fade18a4ad2efc75aa81fd2422 192.168.10.220:6382 
 slots:333-5460 (5128 slots) master 
 1 additional replica(s) 
M: b2c50113db7bd685e316a16b423c9b8abc3ba0b7 192.168.10.220:6383 
 slots:11256-16383 (5128 slots) master 
 1 additional replica(s) 
S: 6475e4c8b5e0c0ea27547ff7695d05e9af0c5ccb 192.168.10.219:6380 
 slots: (0 slots) slave 
 replicates 19b042c17d2918fade18a4ad2efc75aa81fd2422 
S: 1ee01fe95bcfb688a50825d54248eea1e6133cdc 192.168.10.219:6381 
 slots: (0 slots) slave 
 replicates b2c50113db7bd685e316a16b423c9b8abc3ba0b7 
S: 9a2a1d75b8eb47e05eee1198f81a9edd88db5aa1 192.168.10.220:6384 
 slots: (0 slots) slave 
 replicates 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052 
[OK] All nodes agree about slots configuration. 
>>> Check for open slots... 
>>> Check slots coverage... 
[OK] All 16384 slots covered.

三、改变从节点的master


//查看一下6378的从节点 
# redis-cli -p 6378 cluster nodes | grep slave | grep 03ccad2ba5dd1e062464bc7590400441fafb63f2 

//将6385加入到新的master 
# redis-cli -c -p 6385 -h 192.168.10.220 
192.168.10.220:6385> cluster replicate 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052  //新master的node id 
OK 
192.168.10.220:6385> quit 

//查看新master的slave 
# redis-cli -p 6379 cluster nodes | grep slave | grep 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052

四、删除节点

1)删除从节点
# redis-trib.rb del-node 192.168.10.220:6385 '9c240333476469e8e2c8e80b089c48f389827265' 

2)删除主节点
如果主节点有从节点,将从节点转移到其他主节点
如果主节点有slot,去掉分配的slot,然后在删除主节点
# redis-trib.rb reshard 192.168.10.219:6378                             //取消分配的slot,下面是主要过程 
How many slots do you want to move (from 1 to 16384)? 1000              //被删除master的所有slot数量 
What is the receiving node ID? 5d8ef5a7fbd72ac586bef04fa6de8a88c0671052 //接收6378节点slot的master 
Please enter all the source node IDs. 
 Type 'all' to use all the nodes as source nodes for the hash slots. 
 Type 'done' once you entered all the source nodes IDs. 
Source node #1:03ccad2ba5dd1e062464bc7590400441fafb63f2                //被删除master的node-id 
Source node #2:done  

Do you want to proceed with the proposed reshard plan (yes/no)? yes    //取消slot后,reshard 


新增master节点后,也进行了这一步操作,当时是分配,现在去掉。反着的。
# redis-trib.rb del-node 192.168.10.219:6378 '03ccad2ba5dd1e062464bc7590400441fafb63f2' 

新的master节点被删除了,这样就回到了,就是这篇文章开头,还没有添加节点的状态

五、Redis缓存清理

1)登陆redis
# src/redis-cli -c -h 192.168.1.100 -p 6379

2)执行:
192.168.1.100:6379> dbsize

3)
192.168.1.100:6379> flushall

================================================================
redis集群指定key值得缓存清理:
1)登录至指定端口的redis服务器
# src/redis-cli -c -h 192.168.1.100 -p 6379

2)查看所有key值 (或者使用info命令也能查看出来)
keys *

3)删除指定索引的值
del key
STM32实战开发(120):基于STM32的智能pH值检测系统开发 pH值检测:通过pH传感器实时检测溶液的酸碱度。数据采集与处理:STM32单片机通过模拟信号采集并进行数字化处理。数据显示与控制:通过LCD或OLED屏幕实时显示pH值。数据存储与上传:将数据保存在本地SD卡,或通过Wi-Fi模块上传至云平台。低功耗设计:适合长时间运行,减少能源消耗。本文介绍了如何基于STM32单片机开发智能pH值检测系统,涉及硬件设计、软件开发及应用实现。该系统可以实时检测pH值,并将数据展示、存储、上传至云平台,适用于环境监测、农业、水处理等多个领域。 阅读详情

相关推荐

Django 前后端分离实战:网络设备运维系统 - 从登录认证到业务模块

这篇文章分享了Django+Vue前后端分离开发网络设备运维系统的实战经验,重点介绍了登录认证、全局布局和设备管理三大模块的实现。文章包含以下核心内容: 登录模块实现:包括表单验证、Token认证、记住密码功能,以及美观的UI设计(渐变背景、毛玻璃效果) 全局布局架构:采用侧边栏+顶部导航的响应式设计,支持菜单权限控制和多设备适配 业务功能开发:详细展示了设备分类和部门管理的CRUD功能实现,包括列表展示、搜索过滤、分页等功能 常见问题解决:提供了5个开发中常见问题的解决方案,如Vue Router警告、C

qq_16766705的博客 526

php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!

php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了。   数据库脚本: -- -------------------------------------------------------- -- -- 表的结构 `highot_attachment` -- CREATE TABLE IF NOT ...

ljl_xyf的专栏 8015

智慧城市项目实战:如何将你的地理数据从城市坐标系(如上海2000)转换到国家CGCS2000?

本文详细介绍了智慧城市项目中地理数据坐标系转换的全流程解决方案,重点讲解如何将城市坐标系(如上海2000)转换到国家CGCS2000。通过七参数布尔莎模型、ArcGIS Pro、QGIS开源方案及Python编程实现,帮助实施团队解决坐标系不统一的技术难题,确保空间分析精度。

weixin_28725949的博客 307

RedisCluster搭建及原理详解

由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。Redis集群是一种通过将多个Redis节点连接在一起以实现高可用性、数据分片和负载均衡的技术。它允许Redis在不同节点上同时提供服务,提高整体性能和可靠性。Redis集群主要有三种模式:主从复制模式(Master-Slave)、哨兵模式(Sentinel)、Cluster模式。

dys000000的博客 1639

异步fifo的UVM验证(最终最终版)

更新了refmdl以及scb

qq_44674008的博客 2988

【scratch音乐课】天空之城:音符与节拍、消息与链表

scratch是一个非常小巧的青少年编程工具,自带程序编写语句,积木式语句非常直观、易用,可创作数学、科学、音乐、绘画等方面作品。本文用scratch“演奏”一首大家非常熟悉的《天空之城》,并向大家介绍一些基本乐理知识,以及scratch中消息、链表的使用。

★·°立芯;︶︵︶ 1万+

RedisCluster集群扩容

整个集群运行正常,三个master节点和三个slave节点,8001端口的实例节点存储0-5460这些hash槽,8002端口的实例节点存储5461-10922这些hash槽,8003端口的实例节点存储10923-16383这些hash槽,这三个master节点存储的所有hash槽组成redis集群的存储槽位,slave点是每个主节点的备份从节点,不显示存储槽位!的add-node命令新增一个主节点8007(master),前面的ip:port为新增节点,后面的ip:port为集群中已存在的节点。

qq_32486597的博客 1371

Open3D 计算点云法向量的夹角【2026最新版】

计算法向量的夹角,博客长期更新,本文最新更新时间为:2026年3月7日。

点云侠的博客 3131

SpringMVC rediscluster 配置

redis相关学习资料:https://edu.51cto.com/video/4196.htmlSpringMVC RedisCluster 配置指南 作为一名刚入行的开发者,你可能会对如何在SpringMVC项目中配置RedisCluster感到困惑。不用担心,我将通过这篇文章,为你详细讲解整个配置流程。 配置流程 ...

weixin_36374366的博客 247

《QGIS快速入门与应用基础》【专栏完整目录】

《QGIS快速入门与应用基础》第一卷专栏完整目录,覆盖 001–328 全部篇目与附录,逐篇可跳转。

LuckyHanMo的博客 1301

LangChain4j + MCP:从工具协议到生产级 Agent

这两年,很多团队都已经把「大模型问答」接入到系统里了:前端一个输入框,后端调一下 OpenAI / DeepSeek / 本地模型,返回一段回答——这类 「简单问答型」AI 功能它只能说,不会做:不会主动查数据库,不会调用你的接口,不会帮你真正执行脚本;面对复杂一点的需求,比如「帮我生成这个报表的 SQL 并执行一下」,普通 ChatGPT 式的问答就开始力不从心了。而Agent 智能体想解决的,就是这件事:不只是回答你「怎么做」,而是能自己思考、自己决定要不要用工具、再用工具把事做完。

OFFTime_we的博客 1154

Redis之RedisCluster集群

Redis之Redis Cluster的使用 一、Redis Cluster 简介 Redis Sentinel 水平扩容一直都是一个痛点,因为水平扩容牵涉到数据的迁移。迁移过程一方面要保证自己的业务是可用的,一方面要保证尽量不丢失数据所以数据能不迁移就尽量不迁移。针对这个问题,Redis Cluster就应运而生了。 Redis Cluster 是 Redis 的分布式解决方案,在3.0版本正式...

学习和工作总结,共勉! 482

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

RedisCluster路由

org.redisson.cluster.ClusterConnectionManager#addMasterEntry初始化slot和node的映射关系存储在。)连接redis主节点,存取键值时redis-cli同样也会接收到MOVED重定向错误,但是会自动根据重定向信息来切换节点重新发起请求。在ClusterConnectionManager中的slot2entry中, 根据key所对应的slot获取对应的节点信息。使用redis-cli客户端普通连接redis主节点,来存取键值会返回。

慢慢来~ 510

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RedisCluster扩容

已经有一篇文章写关于rediCluster的部署和启动 RedisCluster的安装、部署 这篇记录RedisCluster扩容 一、创建新目录 cd /var/redisCluster/ 创建新的7007文件 mkdir 7007 进入到redi安装目录;(/var/redis-5.0.5/src),执行一下命令 make install PREFIX=/var/redisCluster/7007 然后执行复制redis.conf cp /var/redis-5.0.5/redis.conf /v

没有眉毛的阿斗叶 247

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

14-RedisCluster

Redis Cluster 集群 简介 为了提供高可用高并发的水平拓展,就必须采用集群。 一组Redis Cluster是由多个Redis实例组成,官方推荐我们使用6实例,其中3个为主节点,3个为从结点。一旦有主节点发生故障的时候,Redis Cluster可以选举出对应的从结点成为新的主节点,继续对外服务,从而保证服务的高可用性。 Redis Cluster 把所有的数据划分为16384个不同的槽位,可以根据机器的性能把不同的槽位分配给不同的Redis实例,对于Redis实例来说,他们只会存储部门的Red

qq_35752835的博客 431

php redis集群 RedisCluster类

<?php /** * Helper autocomplete for php redis cluster extension. * Based on the phpredis-phpdoc by Max Kamashev (https://github.com/ukko/phpredis-phpdoc) * * @author Tommy Zheng <tommy@vlv...

IT小学生 2643

RedisCluster 集群实现原理

文章目录1. Redis Cluster 的架构RedisCluster 设计成 16384 个 Slot 的原因2. 集群内部通信机制2.1 RedisCluster 节点间通信方式2.2 Gossip 协议3. 高可用性原理 1. Redis Cluster 的架构 从 redis 3.0 版本之后,redis 支持 Redis-Cluster集群作为 Redis 的分布式解决方案。该集群采用多主多从结构,使用多个 Master节点保存数据和整个集群状态,这样就可以很好地支持横向扩容,通过增减 Mast

谈谈1974 1453

碾压阿里面试官,RedisCluster集群全网最全知识点

为什么需要集群 并发量 redis 本身 10w/s,如果业务需要100 w/s 呢? 数据量 一个 redis 及其内存 16~256G,如果业务需要 500G 呢? 不止于加机器。 RedisCluster在 3.0 发布。 5 一致性哈希 6 虚拟槽哈希分区(Redis Cluster所采用) 7 Redis Cluster基本架构 8 Redis Cluster 安装配置 Redis 3.0之后,节点之间通过去中心化的方式,提供了完整

JavaEdge全是干货的技术号 3519

RedisCluster集群扩容与缩容

目录一、传统Redis集群存在那些问题二、传统RedisCluster集群的原理三、RedisCluster集群模式环境搭建四、RedisCluster集群模式扩容节点五、RedisCluster集群模式缩容节点 一、传统Redis集群存在那些问题 Redis哨兵集群模式,每个节点都保存全量同步数据,冗余的数据比较多;而在Redis Cluster模式中集群中采用分片集群模式,可以减少冗余数据,缺点就是构建该集群模式成本非常高, 二、传统RedisCluster集群的原理 Redis3.0开始官方推出了集群

记录各种Bug解决案例及日常学习内容 1358

PhpRedis终极指南:Redis、RedisCluster与RedisSentinel三大核心类深度解析

PhpRedis是一个功能强大的PHP扩展,为PHP应用程序提供了与Redis数据库的高效交互能力。它支持Redis的核心功能、集群模式和哨兵机制,通过Redis、RedisCluster和RedisSentinel三大核心类,帮助开发者轻松构建高性能、高可用的分布式应用。本指南将带你全面了解这三个核心类的使用方法和最佳实践。 ## 一、Redis类:PHP与Redis的基础交互桥梁 Redi

gitblog_00851的博客 1087

20191225 RedisCluster

RedisCluster原理 整个缓存查询命中率。 一致性Hash正是为了解决这个问题而出现的,该路由算法通过引入一个一致性Hash环,以及进一步增加虚拟节点层,来实现尽可能高的命中率。 使用FNV1_32_HASH哈希算法来尽可能使key与节点分布得更加均匀,引入了虚拟节点,来做负载均衡。 集群内部通信 在redis cluster集群内部通过gossip协议进行通信,集群元数据...

陈如水的专栏 583

RedisCluster集群

RedisCluster集群概述具体实现步骤 概述 RedisCluster是从Redis 3.0版本之后提供的官方Redis集群解决方案,其可以避免哨兵机制复杂的Master监控与选举操作,也可以方便地实现数据的分片处理,发挥集群主机的性能优势,提供更加高效的Redis解决方案,其中考虑到去中心化的架构模式。每个节点都与其他节点有关联,只需获得一个节点的信息其他节点的信息也就可以获取到。 Redis集群会根据已有的主机分配主从关系将所有保存的数据平均分配到每一太Master主机中。若某台Master主机无

sinat_27674731的博客 302

rediscluster php扩展_PHP使用Redis集群 封装RedisCluster类

最近项目要进行升级改造,之前的Redis单例和主从配置的方式,要向Redis集群的方向迁移。于是就简单的封装了RedisCluster类。PHP本身已经有了最底层的方法,这里呢,只是封装了一层,便于开发使用。注意:PHP安装的redis扩展的时候,记得要安装3.0以上的版本,不然会不支持Redis集群的调用方式。classRediscluster{/***集群地址*@vararray*/p...

weixin_39568172的博客 599

RedisCluster集群原理

RedisCluster集群原理 主从复制,数据值每个服务器都存了。 针对redis集群的解决方案, 连接这个集群,不用在乎Master了 6台redis 1、why use Redis? 减轻数据库访问压力 2、持久化 RDB(间隔,非实时) AOF(日志形式记录,实时) 如果在项目 断电(不会保存) 和 停止redis redis停止时候会保存就...

art_code的博客 489

CygWin安装RedisCluster指南

背景 客户为提高性能升级至RedisCluster,本地也要安装开发环境, 因为Redis最新版只能在64位机器上运行,操作系统用Win7 64版。 Redis最新版官方只有Linux版,下载地址 http://redis.io/download 某开源小组提供了Windows版,下载地址 (https://github.com/MSOpenTech/redis)(releases页面)

lnpypy的博客 748

Codis与RedisCluster的原理详解

背景介绍 我们先来看一下为什么要做集群,如果我们要部署一个单节点Redis,很明显会遇到单点故障的问题。 首先能想到解决单点故障的方法,就是做主从,但是当有海量存储需求时,单一的主从结构就会出问题,说问题之前要先了解一下主从之间是如何复制的。 我们把Redis分为三个部分,分别是客户端、主节点以及从节点,如果从节点要同步主节点的数据,它首先会发Sync指令给主节点,主节点收到指令之后...

天下布武之信长的专栏 291
上一篇: zabbix
下一篇: redis+mysql
GodDevin
博客等级 码龄9年 39粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值