redis 集群搭建_Redis分布式缓存分布式集群搭建
当你试图解决一个你不理解的问题时,复杂化就产成了。—Andy Boothe
Redis集群安装部署
Redis是一个运行在内存的非关系型数据库,因为其速度快(效率高),支持数据的持久化(安全),事务操作的原子性(所有操作的原子性),使得其在高并发场景下广泛使用。Redis也常常在高并发场景下作为缓存服务器的角色进行使用,在《大型网站技术架构:核心原理与案例分析》中提到:高并发场景下性能的优化优先考虑缓存。常用的缓存服务有Redis,MongoDB等。
Redis下载
在Redis官方网站上可以在Download it选项中获取到Redis的最新版本或者旧版本,本地搭建我使用的是redis-5.0.9.tar.gz版本,比较稳定。可以使用wget命令下载相关压缩包,并对压缩包进行解压如下:
wget http://download.redis.io/releases/redis-5.0.9.tar.gz tar -zxvf redis-5.0.9.tar.gz -C ~/cache/
Redis的编译和安装
首先我们需要确定我们集群的规模,这里建立集群6个节点,三个master节点,三个slave节点。首先我们切换目录到上一步骤的解压目录,cd redis6379
,然后执行make
和make install
命令对Redis进行安装。然后,我们建立集群目录。在Redis集群搭建的过程中主要是Redis的配置文件Redis.conf文件中的配置不同而已,这里我直接拷贝的编译后的Redis目录。可以得到如下节点分布情况:
更改Redis配置为集群模式
因为在同一台电脑上搭建的Redis集群,所以需要修改Redis的端口号来标识不同的进程,并开启集群模式。六台实例的端口号分布在6379~6384,详细配置如下:
参数 | 参数值 | 额外说明 |
---|---|---|
bind | Ip地址 | 外部可访问IP |
port | 端口号 | 需要确认端口是否已被占用 |
daemonize | 后台进程 | 设置为yes |
pidfile | 进程文件 | 修改为对应端口号 |
cluster-enabled | 集群模式 | 设置为yes |
cluster-config-file | nodes_7000.conf | 首次启动自动生成 |
cluster-node-timeout | 15000 | 请求超时时间,默认15s |
appendonly | yes | aof日志开启 |
Redis启动脚本
path=`pwd`for dic in `ls $path`do if [[ ${dic} == redis* ]] && [[ -d ${dic} ]];then path=${dic}'/src' cd ${path} ./redis-server ../redis.conf cd ../../ fidone
保存到文件,start-cluster.sh文件中,并执行。
检查Redis启动情况
创建集群
在启动集群命令时,我遇到了比较多的问题需要处理,详细问题如下:
- ruby版本过低
- 执行
gem install redis
超时 等问题。
关于问题一:需要卸载安装高版本的ruby。我本地虚拟级安装的为2.5.3版本。主要步骤包括卸载,安装,设置环境变量,安装redis等步骤,详情如下:
# 卸载 yum remove ruby # 下载新版本 wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.gz # 解压安装 tar zxvf ruby-2.5.3.tar.gz cd ruby-2.5.3 ./configure --prefix=/usr/local/ruby make make install # 配置环境 export PATH=$PATH:/root/pl/ruby-2.5.3/bin >>/etc/profile source /etc/profile # 验证 ruby -version
然后就可以执行
gem install redis
关于问题二:因为ruby的源是国外的,导致执行gem install redis
超时卡死,需要更新yum源头,可按照如下方式更新:可以拷贝如下命令:
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
处理完以上的问题我们就可以创建集群了,创建集群前,我们已经启动了所有的Redis节点,所以:
./redis-cli --cluster create IP:6380 IP:6381 IP:6382 IP:6383 IP:6384 --cluster-replicas 1
可以大致看一下集群关系:
./redis-cli -h IP -p 6379 -c cluster slots | xargs -n8 | awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':' | uniq
执行上面的命令,我们可以得出下面的结果
IP:6379(master)->IP:6383(slave)IP:6380->IP:6384IP:6381->IP:6382
我们测试一下:
IP:6379> sadd aaa ccc-> Redirected to slot [10439] located at 192.168.64.134:6380(integer) 1
执行成功,其实Redis集群搭建远远不止这些,后面还会结合Zookeeper对Redis节点进行协调,并设置哨兵等问题对改文档进行更改。希望大家多多关注!!!
redis 集群搭建_Redis分布式缓存分布式集群搭建相关推荐
- redis修改端口号后还是占用6379_Redis分布式缓存分布式集群搭建
当你试图解决一个你不理解的问题时,复杂化就产成了.-Andy Boothe Redis集群安装部署 Redis是一个运行在内存的非关系型数据库,因为其速度快(效率高),支持数据的持久化(安全),事务操 ...
- 分布式面试全家桶:分布式事务+分布式锁+分布式缓存+分布式面试题+分布式项目
一.分布式事务 1.分布式事务简介 2.Seata简介 3.Seata-Server安装 4.Seata配置Nacos注册中心和配置中心 5.Seata-AT模式 6.XA协议 7.Seata整体 ...
- codis配置_分布式缓存Codis集群安装手册
安装Go环境 解压 tar -zxf go1.8.linux-amd64.tar.gz -C /home/devops/ 添加环境变量 vim ~/.bash_profileexport GOPATH ...
- 黑群晖docker清理缓存_黑群晖 NAS 瞎折腾 篇一:超简单的docker设置frp内网穿透
黑群晖 NAS 瞎折腾 篇一:超简单的docker设置frp内网穿透 2020-04-15 11:32:08 25点赞 241收藏 27评论 你是AMD Yes党?还是intel和NVIDIA的忠实簇 ...
- 19 分布式缓存集群的伸缩性设计
不同于应用服务器集群的伸缩性设计,分布 式缓存集群的伸缩性不能使用简单的负载均衡手段来实现. 和所有服务器都部署相同应用的应用服务器集群不同,分布式缓存服务器集群中不同服务器中缓存的数据各不相同,缓存 ...
- 高性能分布式缓存Redis(缓存分类 安装 数据类型选择和应用场景 发布订阅 事务 Lua脚本 慢查询日志)
高性能分布式缓存Redis 高性能分布式缓存Redis 1. 缓存发展史&缓存分类 1.1 大型网站中缓存的使用 1.2 常见缓存的分类 1.3 分布式缓存选型方案对比 2. Redis概述& ...
- 缓存为王:老码农眼中的分布式缓存
本文来自作者 老曹 在 GitChat 上分享 「缓存为王:老码农眼中的分布式缓存」,「阅读原文」查看交流实录. 「文末高能」 编辑 | 哈比 世界是相似的,在商业的世界中,有一句经典语录叫 &quo ...
- 如何在 ASP.Net Core 使用 分布式缓存
ASP.Net Core 提供了多种类型的缓存,除了内存缓存和响应缓存之外,还提供了对 分布式缓存 的支持.在之前的一篇文章中,我讨论了 ASP.Net Core 的内存缓存.在本文中,我们将讨论如何 ...
- 服务端分布式缓存与本地缓存
缓存技术是保障系统性能的基础技术.核心技术. 缓存发挥的作用 ① 最大程度上避免对数据库的并发查询,从而降低因为数据库资源不足导致的系统故障. ② 提升系统的响应速度,保证用户体验 总之缓存使系统稳定 ...
最新文章
- JavaScript快速上手入门
- 安卓java音乐播放器下一曲_Android实现简单音乐播放器(MediaPlayer)
- php获取ip写到文本,php 文本转HTML与获取IP函数
- ZKWeb网站框架的动态编译的实现原理
- android 处理鼠标滚轮事件 【转】
- 【从入门到放弃-ZooKeeper】ZooKeeper实战-分布式队列
- 深入浅出MFC学习笔记 消息
- mysql中起飞到达城市查询_让mysql慢慢起飞 - 初识慢日志
- 取得数组最大值与最小值
- 用JavaScript校验日期的合法性
- arsc编辑器手机版_APK编辑器中文版,任意修改你手机中的APP名称、logo!
- Android NFC 标签读写读取快速开发教程 ( 整理来自 https://blog.csdn.net/wolfking0608/article/details/72675180 )
- 2.5D 组态案例合集 | 智慧园区、数据中心、SMT 生产线、汽车制造
- 《数字孪生》(Yanlz+VR元宇宙+Unity+SteamVR+云技术+5G+AI+虚拟现实+数字映射+仿真+物理模型+传感器更新+运动历史+多学科+多物理量+多尺度+多概率+立钻哥哥++==)
- 运用三角不等式加速Kmeans聚类算法
- 笔记本电脑上网出现问题的解决方法
- 空间直角坐标系、大地坐标系、平面坐标系、高斯平面直角坐标系
- AdB android 投屏 usb,QtScrcpy: Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限...
- 【云计算与大数据技术】分布式数据库NoSQL中KV、列式、图、文档数据库的讲解(图文解释 超详细)
- Adobe Photoshop CS5 标准版新增功能
热门文章
- 在 Java 中如何优雅地判空
- 程序员的核心竞争力究竟是什么?
- 2018 年值得关注的 Web 设计趋势
- linux服务器密码策略,windows与linux服务器平台密码策略管理
- 2015c语言成绩查询,2015年3月全国计算机二级C语言选择第1套
- mxnet insightface特征提取
- 生成tfreocrds
- applicationContext.xml中设置读取jdbc.properties文件
- freeimage边缘检测
- matlab axes标题,Matlab 坐标轴(axes),数据提示(data cursor),标题(title)等的默认字体问题...