当前位置: 首页 > news >正文

Redis安装部署

-


Redis简介
`Redis是一款优秀的NoSQLDB,它在2.x版本不支持集群,集群必须通过外部手段集成;但由于集成方法过于复杂,研发测试和运维要求较高。新版本Redis3.x发布后,自带集群功能,降低了分布式缓存的使用门槛。

Redis2.x单实例支持的业务能力并不小,Redis3.x内部集群后,集群负担工作有一定系统开销,如果使用选型需要结合业务具体分析。一般来说,必须使用分布式场景的或业务数据过亿的可以首先Redis3.x。

Redis3.0.7为目前推荐的最稳定版本,本文基于该版本修订。

Redis3.x引入了一个hash槽的概念,集群将整个系统分为16384个hash槽,这16384个槽位要全部分布在集群中的主节点上。主节点是Redis的读写节点,每个主节点可以配置一个或多个从节点,从节点自动同步主节点数据;当主节点下线时,从节点自动代替主节点工作。`
jedis-2.7.2版本开始支持java访问Redis3.x集群。


缩略语和术语

缩略语/术语

全  称

说  明

append only file(aof)

全持久化模式

 

Redis解压目录

 

$REDIS_HOME

Redis安装目录

 


- 注意事项
要求以用户模式安装

如果没有redis用户,请如下创建:


- root登录172.20.4.80服务器(root/epaylinks)
- 创建用户组db,即:

groupadd db


- 创建用户redis隶属于db组,redis用户目录位于“/usr/redis”,即:

useradd -u 544 -d /usr/redis -g db -m redis


- 设置密码,即:

passwd redis


输入redis2017


- 到此,用户redis创建完毕,接下来有关Redis集群环境的安装都要求在redis用户下完成。
升级注意事项

如果Redis已经安装过,请先备份原Redis的所有配置文件,即$REDIS_HOME目录下的所有文件。


-
注意事项

  • 每一次修改环境变量之后记得source ~/.bashrc



  • 每一次保存新的环境变量,只对当前会话或新连接的会话生效



- Redis安装操作步骤说明
安装前环境说明
集群环境说明

Redis3.x的最小集群需要3主3从6个实例;在生产环境最小配置3台服务器。测试验证工作可以部署在一台物理机上,用端口来区分实例。本次使用六个端口代表六个实例,搭建“三主三从”的集群环境,六个端口分别为6381 6382 6383 6384 6385 6386。


-

目录规范

为方便操作,目录路径统一定义,先创建以下两个常用目录:Redis安装包目录:${REDIS_FILE}、Redis最终安装目录:${REDIS_HOME}。操作如下:


以redis/redis2017登录进入主目录;


创建目录software用于存放所有软件安装包:


mkdir software


创建目录environment用于存放所有软件安装目录:


mkdir environment


创建本次环境搭建必要的几项安装目录:


cd environment


mkdir redis ruby


创建本次环境搭建必要的几项安装包目录,并将有需要的bin加入到PATH,示例:


vim ~/.bashrc


- - -  - - -  -


User specific aliases and functions


export REDIS_HOME=/usr/redis/environment/redis


export RUBY_HOME=/usr/redis/environment/ruby


export PATH=$PATH:$REDIS_HOME/bin:$RUBY_HOME/bin


- - -  - - -  -


source ~/.bashrc


-
下载

Redis到官方网站:http://www.redis.io/download下载


本文档用http://download.redis.io/releases/redis-3.0.7.tar.gz


cd software


wget -c http://download.redis.io/releases/redis-3.0.7.tar.gz


-
Redis 介绍

Redis是Remote Dictionary Server的缩写。他本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具有push/pop、add/remove、执行服务端的并集、交集、两个sets集中的差别等等操作,这些操作都是具有原子性的,Redis还支持各种不同的排序能力。redis3.x加入了集群功能(此功能需Ruby环境)。


根目录下:


       redis.conf 默认配置文件


src目录:


redis-trib.rb 创建集群


make命令执行完成后,会在安装目录的bin下生成5个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump


-
解压

解压Redis的tar包:


cd software


tar -zxvf redis-3.0.7.tar.gz


这样就在当前目录下新建了一个包含发行版源代码的目录


-
安装

将redis安装包目录加入环境变量:


export REDIS_FILE=/usr/redis/software/redis-3.0.7


进入redis解压目录:


cd $REDIS_FILE


执行如下命令指定目录安装Redis:


make PREFIX=$REDIS_HOME install


-
创建工作目录并配置

进入Redis安装目录:


cd $REDIS_HOME


为了简洁明了,此处工作目录以端口号命名:


mkdir 6381 6382 6383 6384 6385 6386


分别在6381 6382 6383 6384 6385 6386目录下创建data、log、run、conf文件夹,例如在6381 目录下创建:


cd 6381


mkdir data log run conf


复制配置文件redis.conf到6381 6382 6383 6384 6385 6386目录下的conf目录中


cp $REDIS_FILE/redis.conf $REDIS_HOME/6381/conf/redis.conf


cp $REDIS_FILE/redis.conf $REDIS_HOME/6382/conf/redis.conf


cp $REDIS_FILE/redis.conf $REDIS_HOME/6383/conf/redis.conf


cp $REDIS_FILE/redis.conf $REDIS_HOME/6384/conf/redis.conf


cp $REDIS_FILE/redis.conf $REDIS_HOME/6385/conf/redis.conf


cp $REDIS_FILE/redis.conf $REDIS_HOME/6386/conf/redis.conf


分别修改6381 6382 6383 6384 6385 6386 conf目录下的redis.conf文件,此处以6381为例(注意:这配置文件必须绝对路径):


bind 0.0.0.0


pidfile /usr/redis/environment/redis/6381/run/redis.pid


port 6381


logfile “/usr/redis/environment/redis/6381/log/stdout.log”


dir /usr/redis/environment/redis/6381/data


daemonize yes


cluster-enabled yes


cluster-config-file nodes.conf


cluster-node-timeout 5000


appendonly yes


建议:


先改好一个结点的redis.conf,再复制到其它结点;


使用vim 替换命令全部替换端口号,即::%s/6381/6385/g


查看配置文件:grep -v '^#\|^$' redis.conf


修注:1.pidfile 或logfile目录配置内容可以用双引号括起来。


      2. 配置文件中有默认的tcp-backlog 511参数,该参数配置不正确不能成功启动。从注释来看该值取/proc/sys/net/core/somaxconn 和tcp_max_syn_backlog二者的最小配置,二者需要root权限才可以查看,我在centos上配置为tcp-backlog 100。


root查看方法:


cat /proc/sys/net/ipv4/tcp_max_syn_backlog


cat /proc/sys/net/core/somaxconn


 


-
启动、停止Redis
启动Redis服务器

进入$REDIS_HOME的bin目录下,命令:


可先将$REDIS_HOME/bin加到PATH:


export PATH=$PATH:$REDIS_HOME/bin


redis-server $REDIS_HOME/6381/conf/redis.conf


redis-server $REDIS_HOME/6382/conf/redis.conf


redis-server $REDIS_HOME/6383/conf/redis.conf


redis-server $REDIS_HOME/6384/conf/redis.conf


redis-server $REDIS_HOME/6385/conf/redis.conf


redis-server $REDIS_HOME/6386/conf/redis.conf


注:此命令仅有一个启动参数,用以指定配置文件,不加参数执行默认配置。


建议:将所有redis的启动命令写在一个shell快捷文件


-

停止Redis

可指定端口,关闭服务:


redis-cli -p 6381 shutdown


redis-cli -p 6382 shutdown


redis-cli -p 6383 shutdown


redis-cli -p 6384 shutdown


redis-cli -p 6385 shutdown


redis-cli -p 6386 shutdown


建议:将所有redis的停止命令写在一个shell快捷文件


注:为了下面的操作,如果执行了关闭服务的操作,请重新执行4.7.1重新开启服务


-

连接Redis

单实例链接方式:


redis-cli  -h主机IP  -p 端口号(默认为127.0.0.1 6379)


集群连接需要增加 –c 参数,主机和端口号随便连接一个主节点即可,当操作没有命中链接的主节点时集群内部路由到hash命中节点。这一步路由在网络条件不好时测试性能影响较大。


redis-cli –c  -h主机IP  -p 端口号(默认为127.0.0.1 6379)


示例:


redis-cli -c -h 127.0.0.1 -p 6381


 


注:至此,redis便安装完毕了。


- Ruby安装步骤

redis集群的创建需要ruby环境


-
下载

Ruby到官方网站:https://www.ruby-lang.org/en/downloads下载


本文挡用ruby-2.4.1


cd software


wget -c https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.1.tar.gz


-
解压

解压Ruby的tar包:


cd software


tar -zxvf ruby-2.4.1.tar.gz


-
安装

将redis安装包目录加入环境变量:


export RUBY_FILE=/usr/redis/software/ruby-2.4.1


进入Ruby解压目录


cd $RUBY_FILE


执行一下命令进行安装


./configure prefix=$RUBY_HOME


make


make install


查看版本号:


![](https://i-blog.csdnimg.cn/blog_migrate/3c5cd1ca8efde94c5406fafec0245033.png)


 


至此,Ruby便安装好了。


- Redis集群的创建
安装zlib

确保系统安装zlib,否则后续gem install会报 (no such file to load -- zlib)


cd software


wget -c http://www.zlib.net/zlib-1.2.11.tar.gz


tar -xzvf zlib-1.2.11.tar.gz


cd zlib-1.2.11


./configure  


make  


sudo make install (输入redis2017)


-
安装RubyGem

可从官网上找最新版本rubygem:https://rubygems.org/pages/download


以上方式复制rubygem的下载地址,下载到software目录:


cd software


wget -c https://rubygems.org/rubygems/rubygems-2.6.12.tgz


tar -zxvf rubygems-2.6.12.tgz


cd rubygems-2.6.12


ruby setup.rb


-
安装RedisGem
方法1

注:本次采用此方法安装。


创建redis集群需要ruby环境,而ruby需要redis接口(redis-gem),因此先安装redis接口(对应之前redis版本,这里同样用3.0.7版本):


gem install --local redis-3.0.7.gem


![](https://i-blog.csdnimg.cn/blog_migrate/c0dbdb38ec79e9b3bb8bfca74d0c5a85.png)


 


-

方法2

因国内网络环境无法连接到ruby资源库,淘宝给出了解决方案,我们只需要替换资源地址便可,详情可查看http://ruby.taobao.org


移除ruby官方的资源库地址:


gem sources --remove https://rubygems.org/


加入淘宝的资源地址:


gem sources -a https://ruby.taobao.org/


查看此时是否只有ruby.taobao.org:


gem sources –l


安装redis接口:


gem install redis


一般来说,安装Redis的服务器链接外网都比较困难,通过以上的网络方式安装局限性较大,建议下载到本地安装。通过命令-l (local)方式安装。


gem install redis-3.2.1.gem -l


-
创建集群

进入redis解压目录的src下:


cd $REDIS_FILE/src


执行命令创建集群(此处1表示1个主master对应一个从slave):


./redis-trib.rb create --replicas 1 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 127.0.0.1:6386


注:创建集群需使用真实IP,而非127.0.0.1


开发服务器:


./redis-trib.rb create --replicas 1 172.20.4.90:6381 172.20.4.90:6382 172.20.4.90:6383 172.20.4.90:6384 172.20.4.90:6385 172.20.4.90:6386


测试服务器:


./redis-trib.rb create --replicas 1 172.20.4.90:6381 172.20.4.90:6382 172.20.4.90:6383 172.20.4.90:6384 172.20.4.90:6385 172.20.4.90:6386


安装过程根据提示输入yes并enter


注:如果报错提示redis未启动,按照“4.7.1启动Redis服务器”启动:


redis集群创建成功。


注意:这里的redis主从是自动分配的。


-
测试集群

登录多个redis实例的客户端,通过set 在不同实例中验证:


 


![](https://i-blog.csdnimg.cn/blog_migrate/5586ae005711ffb0884038c0172c7093.png)


 


 




![](https://i-blog.csdnimg.cn/blog_migrate/6503911a7717dbc5b6551f4d8ce5b46a.jpeg)

同名原创公众号:
程序大视界

http://www.rkmt.cn/news/1433720.html

相关文章:

  • 源码分析【三】ArrayList与LinkedList的比较
  • TVA在传统安防迈向智能物联(AIoT)中的突破与应用(2)
  • LibreDWG完全指南:5个关键优势解决DWG文件处理难题
  • 告别低效写作:盘点2026年实力封神的的降AI率平台 - 降AI小能手
  • 《中间件》——kafka的工作原理解析
  • 终极魔兽争霸III游戏优化工具:简单三步提升你的游戏体验
  • 2026 年 5 个最佳 Agent Skills 平台推荐
  • 3个关键词让你的小爱音箱智能下载歌曲:Xiaomusic语音指令实用指南
  • 手把手教你用VMware安装华为EulerOS 2.0 SP5(附详细分区与开发环境配置)
  • Qt版本管理实战:从5.12.3平滑降级到5.9.8,并让VS2022同时识别多个Qt版本
  • D3KeyHelper终极指南:5分钟掌握暗黑3自动化战斗技能宏工具
  • 别等硬盘挂了才后悔!保姆级教程:用smartctl给你的Linux服务器硬盘做个全面体检(附关键指标解读)
  • Debian11最小化安装后,浏览器中文乱码?5分钟搞定中文字体配置(附常用字体包清单)
  • 3大技术突破:douyin-downloader如何实现批量无水印视频的智能获取?
  • TCSVT期刊投稿实战:如何用LaTeX高效排版并处理图表与多媒体文件
  • LinkSwift:九大网盘直链解析工具,告别下载等待的终极解决方案
  • 统信UOS任务栏高效模式 vs 时尚模式,哪个更适合你的工作流?
  • 避坑指南:用铅画纸打印骰子教具,图案模糊、嵌套失败的3个关键原因与解决方案
  • 2026CRM软件大盘点:三梯队10款主流产品解析 - Joyky
  • UE5 RPG实战:手把手教你用GameplayEffect实现三种药水效果(瞬回、持续、Buff)
  • 告别文件互导!用Omniverse Live-Sync在UE和USD Composer之间玩转实时灯光与材质编辑
  • 3分钟找回Windows 11消失的任务栏拖放功能:零风险修复指南
  • NC65 后台SQL实战:科目余额表的多维度数据透视与聚合查询
  • 终极NCM音乐解密指南:3分钟快速解锁网易云加密音乐文件
  • 告别手动管理!用Unity Addressable系统实现资源热更新(含本地/远程路径配置详解)
  • 告别虚拟机!在Win10上用WSL2打造CentOS开发环境(含Git、Miniconda、VSCode配置)
  • 从‘半兰伯特’到屏幕色彩:拆解Unity渐变纹理Shader,理解它如何悄悄影响你的游戏画面
  • 即梦去水印教程:全场景即梦去水印方法适配图片视频各类导出需求 - 科技热点发布
  • 2026年5月北京国际小学推荐:五强榜专业评测学费性价比高注意事项 - 品牌推荐
  • 用Flask和Python爬取m3u8视频流:从本地保存到一键上传Cloudflare R2的完整流程