redis 的集群

1.redis-cluster架构图

架构细节:

(1)所有的redis节点彼此互联(PING-PONG机制),节点的fail是通过集群中超过半数的节点检测失效时才生效.

(2)存取数据时连接任一节点都可以,但集群中有一个节点fail整个集群都会fail

Redis 集群中内置了 16384 个哈希槽,当需要在Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点

2.redis集群的搭建

Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。

Redis集群至少需要6台服务器。

搭建伪分布式。可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006

首先创建/redis-cluster文件夹放置

3、搭建步骤

①删除redis中的持久化文件

cd /usr/local/redis/bin

rm -f dump.rdb

rm -f appendonly.aof

②开启集群

vim /usr/local/redis/bin/redis.conf

cluster-enable yes

③拷贝6个节点

cd /usr/local

cp -r /usr/local/redis /usr/local/redis-cluster/redis-7001

..........

④修改端口号

vim /usr/local/redis-cluster/redis-7001/bin/redis.conf

port 7001

⑤编写启动脚本

cd /usr/local/redis-cluster

vim start-all.sh:

cd /usr/local/redis-cluster/redis-7001/bin

./redis-server redis.conf

更改权限

chmod 755 start-all.sh

./start-all.sh //启动脚本

ps -ef | grep redis //查看进程

⑥安装ruby环境

cd /usr/upload

yum install ruby

yum install rubygems

gem install redis-3.0.0.gem

cd /usr/upload/redis-3.0.0/src

ll *.rb

⑦使用ruby脚本搭建redis集群

cd /usr/upload/redis-3.0.0/src

./redis-trib.rb create --replicas 1 (1 有几个从者)

192.168.61.131:7001

192.168.61.131:7002

192.168.61.131:7003

192.168.61.131:7004

192.168.61.131:7005

192.168.61.131:7006

(本机ip 和端口号)

⑧测试

1)存取数据 //链接集群

./redis-cli -c -p 7001

2)测试是否高可用

cluster nodes

关闭7001

cluster nodes

4 redis 的基本数据类型

String(字符串)

操作 命令 说明
增 / 改 set k v 设置 key 为 k,值为 v,已存在则覆盖
查 get k 获取 key 为 k 的值
删 del k 删除 key 为 k 的键值对

Hash(哈希)

操作 命令 说明
增 / 改 hset k field value 给 key 为 k 的哈希表,设置字段 field 的值为 value
查 hget k field 获取 key 为 k 的哈希表中,field 字段的值
删 hdel k field 删除 key 为 k 的哈希表中的 field 字段

List(列表)

操作 命令 说明
增 lpush/rpush k v... lpush从列表左侧 插入元素,rpush从右侧插入
查 lrange k start end 获取列表指定范围的元素,0 -1代表查询全部
删 lrem k count v 删除列表中 count 个值为 v 的元素

Set(集合)

操作 命令 说明
增 sadd k v... 给 key 为 k 的集合添加元素,自动去重
查 smembers k 获取集合中所有元素
删 srem k v 删除集合中值为 v 的元素

ZSet(有序集合)

操作 命令 说明
增 zadd k score v... 给 key 为 k 的有序集合添加元素,同时指定分数 score(用于排序)
查 zrange k 0 -1 withscores 按分数升序获取集合所有元素,withscores同时显示分数
删 zrem k v 删除有序集合中值为 v 的元素

核心记忆技巧

数据类型 增 查 删
String set get del
Hash hset hget hdel
List lpush/rpush lrange lrem
Set sadd smembers srem
ZSet zadd zrange zrem
相关推荐
考虑考虑8 小时前
JDK26中的Map.ofLazy
java·后端·java ee
鶴哥只手遮天12 小时前
Spring AI 2.0.1 深度解析-第 14 章 MCP 服务端(上):注解式实现与工具来源
java·人工智能·开源
鶴哥只手遮天12 小时前
Spring AI 2.0.1 深度解析-第 15 章 MCP 服务端(下):三种协议形态、Streamable 传输与状态管理
java·人工智能·开源
鶴哥只手遮天12 小时前
Spring AI 2.0.1 深度解析-第 16 章 向量存储(上):`VectorStore` 接口体系、`BatchingStrategy`
java·人工智能·开源
鶴哥只手遮天12 小时前
Spring AI 2.0.1 深度解析-第 12 章 工具循环的流式形态、Usage 累加与扩展体系
java·人工智能·开源
鶴哥只手遮天12 小时前
Spring AI 2.0.1 深度解析-第 23 章 模型供应商实现:从 `OpenAiSetup` 到 Bedrock
java·人工智能·开源
鶴哥只手遮天12 小时前
Spring AI 2.0.1 深度解析-第 06 章 内置 Advisor 全景:13 个实现逐个剖到源码级
java·人工智能·开源
鶴哥只手遮天12 小时前
Spring AI 2.0.1 深度解析-第 03 章 消息体系与 Prompt:不可变模型、`ChatOptions` 与模板渲染
java·人工智能·开源
鶴哥只手遮天12 小时前
Spring AI 2.0.1 深度解析-第 24 章 生产实践与 2.x 迁移:陷阱清单、AOT 与调优
java·人工智能·开源
鶴哥只手遮天12 小时前
Spring AI 2.0.1 深度解析-第 10 章 工具调用(中):执行链路、结果转换与工具限制
java·人工智能·开源