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
相关推荐
Web Security Loop23 分钟前
MAC卸载JDK环境
java·macos·jdk
NiceCloud喜云42 分钟前
腾讯云国际版云数据库选型:MySQL、Redis 怎么按业务架构来判断
数据库·mysql·腾讯云
ew452181 小时前
MySQL JOIN 关联语法、差异、标准用法、经典坑点汇总
数据库·mysql
Rain的Java大神之路1 小时前
线上接口负载满了如何解决
java·数据库·redis·后端·缓存·面试·架构
Nturmoils2 小时前
给运营导个 CSV,在 ksql 里用 \copy 就够了
数据库
ciqingloveless2 小时前
Oracle打开数据库加密
数据库·oracle
counting money2 小时前
Tomcat 专题:从基础架构到性能调优与 WebSocket 实战
java·websocket·tomcat
m0_462605222 小时前
大模型week02
数据库
DBA_G2 小时前
GBase 8a数据库集群多维度资源管控策略矩阵解析
数据库·oracle
xiaohaiAIgeo2 小时前
【2026年】HG/T 20656-2024化工暖通空调设计规范:新版标准的变化与影响
java·前端·javascript·科普知识