Redis群集

1、Redis基础。

1.1、Redis简介。

Redis是一个开源的、使用C语言编写、支持网络、可基于内存亦持久化的日志型、key-value(键值对)数据库,是目前分布式架构中不可或缺的一环。

Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Rdis进程,而Reids的实际处理速度则完全依靠于主进程的执行效率。若在服务器只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力会有一定程度的下降;若在同一台服务器上开启多个Redis进程,Redis在提高并发处理能力的同时会给服务器的CPU造成很大压力。也就是说,在实际生产环境中,需要根据实际的需求来决定开启多少个Redis进程。若对高并发要求更高一些,可能会考虑在同一台服务器上开启多个进程;若CPU资源比较紧张,常用单进程即可。

Redis具有以下几个优点:具有极高的数据读写速度。支持丰富的数据类型。支持数据的持久化。原子性。支持数据备份。

2、Redis安装部署。

组件包:Redis安装包

|--------------|--------------------|-----------|
| 设备 | IP | 备注 |
| Centos01 | 192.168.136.10 | Node1 |
| Centos02 | 192.168.136.20 | Node2 |
| Centos03 | 192.168.136.30 | Node3 |
| Centos04 | 192.168.136.40 | Node4 |
| Centos05 | 192.168.136.50 | Node5 |
| Centos06 | 192.168.136.60 | Node6 |

上传Redis软件包到六台服务器中,使用Xshell同时控制六台服务器进行配置

安装组件包

[root@nodeAAA ~]# yum -y install gcc net-tools


解包到/usr/src/目录下
[root@nodeAAA ~]# tar zxf redis-7.2.4.tar.gz -C /usr/src/


**编译安装

root@nodeAAA \~\]# cd /usr/src/redis-7.2.4/ \[root@nodeAAA redis-7.2.4\]# make \&\& make install** *** ** * ** *** **创建软连接将src/目录下的所有内容链接到/usr/sbin/目录下** **\[root@nodeAAA \~\]# **ln -s src/\* /usr/sbin/**** *** ** * ** *** **创建群集配置目录** **\[root@nodeAAA \~\]# mkdir cluster** *** ** * ** *** **创建群集子目录,并将Redis配置文件复制到群集子目录下** **\[root@nodeAAA redis-7.2.4\]#** ****mkdir cluster/6001**** **\[root@nodeAAA redis-7.2.4\]#** ****cp redis.conf cluster/6001**** **\[root@nodeAAA redis-7.2.4\]#** ****mkdir cluster/6002**** **\[root@nodeAAA redis-7.2.4\]#** ****cp redis.conf cluster/6002**** **\[root@nodeAAA redis-7.2.4\]#** ****mkdir cluster/6003**** **\[root@nodeAAA redis-7.2.4\]#** ****cp redis.conf cluster/6003**** **\[root@nodeAAA redis-7.2.4\]#** ****mkdir cluster/6004**** **\[root@nodeAAA redis-7.2.4\]#** ****cp redis.conf cluster/6004**** **\[root@nodeAAA redis-7.2.4\]#** ****mkdir cluster/6005**** **\[root@nodeAAA redis-7.2.4\]#** ****cp redis.conf cluster/6005**** **\[root@nodeAAA redis-7.2.4\]#** ****mkdir cluster/6006**** **\[root@nodeAAA redis-7.2.4\]#** ****cp redis.conf cluster/6006**** *** ** * ** *** **分别修改配置文件中的内容** **\[root@nodeAAA redis-7.2.4\]#** ****vim cluster/6001/redis.conf**** ****bind 192.168.160.51 #将127.0.0.1修改对应节点IP**** ****protected-mode no** **#将yes 修改no关闭保护功能**** ****port 6001** **#将6379端口修改对应目录的**** ****daemonize yes** ​​​​​​​ **#将no 修改yes 开启守护进程**** ****cluster-enabled yes** ​​​​​​​ **#将 #删除 开启群集功能**** ****cluster-config-file nodes-6379.conf #将 #删除 开启群集配置文件**** ****cluster-node-timeout 15000**** ****#将 #删除 开启群集节点超时**** *** ** * ** *** **分别启动每个服务器的redis服务** **\[root@nodeAAA redis-7.2.4\]# redis-server cluster/6001/redis.conf** *** ** * ** *** **在node1创建群集(仅在node1)** **\[root@nodeAAA \~\]# yum -y install ruby ruby-devel rpm-build** **\[root@nodeAAA \~\]# redis-cli --cluster create 192.168.136.10:6001 192.168.136.20:6002 192.168.136.30:6003 192.168.136.40:6004 192.168.136.50:6005 192.168.136.60:6006 --cluster-replicas 1** *** ** * ** *** **验证测试,在node1连接** **\[root@nodeAAA \~\]# redis-cli -h 192.168.136.10 -p 6001 -c** 192.168.136.10:6001\> set a bb -\> Redirected to slot \[15495\] located at 192.168.136.30:6003 OK 192.168.136.30:6003\> get a "bb" 192.168.136.30:6003\> CLUSTER SLOTS

相关推荐
DD_陈东东2 分钟前
gdbus 常用数据结构与库函数
linux
DIY机器人工房1 小时前
代码详细注释:ARM-Linux字符设备驱动开发案例:LCD汉字输出改进建议开发板断电重启还能显示汉字,显示汉字位置自定义
linux·嵌入式·文件io·diy机器人工房
得物技术1 小时前
eBPF 助力 NAS 分钟级别 Pod 实例溯源|得物技术
linux
Rudon滨海渔村2 小时前
解决阿里云ubuntu内存溢出导致vps死机无法访问 - 永久性增加ubuntu的swap空间 - 阿里云Linux实例内存溢出(OOM)问题修复方案
linux·运维·ubuntu
A-刘晨阳2 小时前
【Linux】Redis 6.2.6 的二进制部署【适用于多版本】
linux·运维·redis
cat_with_cat3 小时前
Linux网络:UDP socket创建流程与简单通信
linux·网络·udp
2401_861615283 小时前
跨平台的ARM 和 x86 Docker 镜像:汇编语言实验环境搭建
linux·汇编·ubuntu·docker·容器
hz355723 小时前
IO多路复用--epoll
linux
努力学习的小廉3 小时前
深入了解linux系统—— System V之消息队列和信号量
android·linux·开发语言
华无丽言3 小时前
如何简单实现发版不影响客户使用?nginx负载
linux·nginx