当前位置:首页 > 公众号精选 > 架构师社区
[导读]本篇文章讲述了Redis单机环境、主备、哨兵Sentinel模式以及RedisCluster集群模式下的操作步骤,关于这些操作我们没必要死记硬背,只需要总结下来,下次使用直接拿出来就好。建议当作操作手册收藏。安装单实例Redis编译Redis1.下载Redis源码包wgethtt...

本篇文章讲述了 Redis 单机环境、主备、哨兵 Sentinel 模式以及 Redis Cluster 集群模式下的操作步骤,关于这些操作我们没必要死记硬背,只需要总结下来,下次使用直接拿出来就好。

建议当作操作手册收藏。

安装单实例 Redis

编译Redis

1.下载Redis源码包wget https://download.redis.io/releases/redis-5.0.13.tar.gz2.解压文件tar -zxvf redis-5.0.13.tar.gz3.cd redis-5.0.134.make 编译

1.如果遇到以下报错,需要安装依赖 yum install gcc

必会Redis单节点、Sentinel和Cluster操作实战

2.如果遇到以下报错

必会Redis单节点、Sentinel和Cluster操作实战

分配器allocator, 如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis。

而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。

但是如果你又没有jemalloc 而只有 libc 当然 make 出错。所以加这么一个参数,运行如下命令:

make MALLOC=libc

此时编译完成,文件目录下已经生成可执行文件。


必会Redis单节点、Sentinel和Cluster操作实战


安装Redis服务

1.安装编译后的文件make install PREFIX=/usr/local/redis52.编辑环境变量vi /etc/profile3.追加如下信息

export REDIS_HOME=/usr/local/redis5export PATH=$PATH:$REDIS_HOME/bin4.更新配置source /etc/profile

echo $PATH检查环境变量是否正确必会Redis单节点、Sentinel和Cluster操作实战

5.cd utils/6.安装服务./install_server.sh然后出现如下输出

[root@node1 utils]# ./install_server.sh Welcome to the redis service installerThis script will help you easily set up a running redis server
Please select the redis port for this instance: [6379] 选择启动端口Selecting default: 6379Please select the redis config file name [/etc/redis/6379.conf] 设置配置文件目录Selected default - /etc/redis/6379.confPlease select the redis log file name [/var/log/redis_6379.log] 设置日志目录Selected default - /var/log/redis_6379.logPlease select the data directory for this instance [/var/lib/redis/6379] 设置数据库目录Selected default - /var/lib/redis/6379Please select the redis executable path [/usr/local/redis5/bin/redis-server] 设置可执行文件目录Selected config:Port : 6379Config file : /etc/redis/6379.confLog file : /var/log/redis_6379.logData dir : /var/lib/redis/6379Executable : /usr/local/redis5/bin/redis-serverCli Executable : /usr/local/redis5/bin/redis-cliIs this ok? Then press ENTER to go on or Ctrl-C to abort.Copied /tmp/6379.conf => /etc/init.d/redis_6379 复制配置文件Installing service... 安装服务Successfully added to chkconfig! 设置开机启动Successfully added to runlevels 345!Starting Redis server... 启动服务Installation successful!
7.service redis_6379 status 检查是否安装成功ps -ef|grep redis 检查正在运行的服务

必会Redis单节点、Sentinel和Cluster操作实战

配置修改

1.修改 配置信息vi /etc/redis/6379.conf (这一步可选)

daemonize no # 前台方式运行 为了方便观察#logfile /var/log/redis_6379.log #注释掉,前台输出 为了方便观察appendonly yes # aof同步开启
2.启动 redis-server /etc/redis/6379.conf3.启动客户端 redis-cli -p 6379

主备安装

1.使用install_server.sh再安装两个Redis实例,使用端口号在同一机器区分 这里分别使用6379,6380,6381,并且分别启动2.登陆客户端 redis-cli -p 63813.输入命令 help SLAVEOF,6380端口实例操作同理。

redis-cli -p 6381 127.0.0.1:6381>help SLAVEOFSLAVEOF host port summary: Make the server a replica of another instance, or promote it as master. Deprecated starting with Redis 5. Use REPLICAOF instead. since: 1.0.0 group: server
127.0.0.1:6381> REPLICAOF 127.0.0.1 6379 OK 127.0.0.1:6381>
4.设置追随6379为主 REPLICAOF 127.0.0.1 6379

必会Redis单节点、Sentinel和Cluster操作实战

6381变化:

必会Redis单节点、Sentinel和Cluster操作实战

6379变化:

必会Redis单节点、Sentinel和Cluster操作实战

25692:S 03 Sep 2021 20:19:53.182 * REPLICAOF 127.0.0.1:6379 enabled (user request from 'id=3 addr=127.0.0.1:42336 fd=7 name= age=113 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=44 qbuf-free=32724 obl=0 oll=0 omem=0 events=r cmd=replicaof')25692:S 03 Sep 2021 20:19:54.146 * Connecting to MASTER 127.0.0.1:637925692:S 03 Sep 2021 20:19:54.146 * MASTER <-> REPLICA sync started25692:S 03 Sep 2021 20:19:54.146 * Non blocking connect for SYNC fired the event.25692:S 03 Sep 2021 20:19:54.147 * Master replied to PING, replication can continue...25692:S 03 Sep 2021 20:19:54.147 * Trying a partial resynchronization (request 839fc4e0817f7c98e9fa8204c53aedf661c71bf1:1).25692:S 03 Sep 2021 20:19:54.148 * Full resync from master: 4cff4bffe3e33adcca1864de53064480eb00c200:025692:S 03 Sep 2021 20:19:54.148 * Discarding previously cached master state.25692:S 03 Sep 2021 20:19:54.251 * MASTER <-> REPLICA sync: receiving 176 bytes from master25692:S 03 Sep 2021 20:19:54.254 * MASTER <-> REPLICA sync: Flushing old data # 会先删除本节点老数据25692:S 03 Sep 2021 20:19:54.254 * MASTER <-> REPLICA sync: Loading DB in memory25692:S 03 Sep 2021 20:19:54.254 * MASTER <-> REPLICA sync: Finished with success
效果如下图:

必会Redis单节点、Sentinel和Cluster操作实战

如果一个节点首次追随主节点,会执行RDB同步 如果从节点挂掉,启动直接追随先前的主节点,只做增量同步 但是如果节点挂掉,启动直接追随先前的主节点,同步方式为AOF,则会做RDB全量同步。。可能是因为AOF没有记录之前追随过谁

取消追随主节点:REPLICAOF no one

哨兵模式 Sentinel

配置 sentinel

1.从redis源码目录复制官网提供的配置文件cp /root/soft/redis-5.0.13/sentinel.conf /etc/redis/sentinel_26379.conf2.修改配置文件

port 26379sentinel monitor mymaster 127.0.0.1 6379 23.启动sentinel实例redis-server /etc/redis/sentinel_26379.conf --sentinel 以此为例启动三台

必会Redis单节点、Sentinel和Cluster操作实战

 

必会Redis单节点、Sentinel和Cluster操作实战

4.设置 sentinel 成功

验证

1.此时杀死master 6379实例

必会Redis单节点、Sentinel和Cluster操作实战

2.选举6380为新的主节点

必会Redis单节点、Sentinel和Cluster操作实战

3.此时重启6379节点 

redis-server /etc/redis/6379.conf必会Redis单节点、Sentinel和Cluster操作实战

其中一个sentinel输出如下

11035:X 04 Sep 2021 01:41:29.685 # -sdown slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 638011035:X 04 Sep 2021 01:41:39.675 * convert-to-slave slave 127.0.0.1:6379 127.0.0.1 6379 @ mymaster 127.0.0.1 6380原有的主节点已经切换为备用节点

Redis Cluster

配置集群

1.查看Redis cluster相关命令 redis-cli --cluster help

[root@node1 ~]# redis-cli --cluster helpCluster Manager Commands: create host1:port1 ... hostN:portN --cluster-replicas check host:port --cluster-search-multiple-owners info host:port fix host:port --cluster-search-multiple-owners reshard host:port --cluster-from --cluster-to --cluster-slots --cluster-yes --cluster-timeout --cluster-pipeline --cluster-replace rebalance host:port --cluster-weight <node1=w1...nodeN=wN> --cluster-use-empty-masters --cluster-timeout --cluster-simulate --cluster-pipeline --cluster-threshold --cluster-replace add-node new_host:new_port existing_host:existing_port --cluster-slave --cluster-master-id del-node host:port node_id call host:port command arg arg .. arg set-timeout host:port milliseconds import host:port --cluster-from --cluster-copy --cluster-replace2.分别启动每个Redis实例

Redis 本身在Utils目录下提供了单机部署 cluster demo 的util脚本,可以快速一键部署。

cd /root/soft/redis-5.0.13/utils/create-cluster

vi create-cluster

# SettingsPORT=30000TIMEOUT=2000NODES=6 # 节点数REPLICAS=1 # 备用节点数 此配置为3主3从./create-cluster start 启动实例

./create-cluster create

3.redis-cli --cluster create 127.0.0.1:30001 127.0.0.1:30002 127.0.0.1:30003 127.0.0.1:30004 127.0.0.1:30005 127.0.0.1:30006 --cluster-replicas 1

必会Redis单节点、Sentinel和Cluster操作实战


4.创建集群完成,客户端链接校验redis-cli -c -p 30001

必会Redis单节点、Sentinel和Cluster操作实战

 如果发生了自动重定向,则表示RedisCluster使用正常


检查Redis cluster状态

1.redis-cli --cluster check 127.0.0.1:30001

必会Redis单节点、Sentinel和Cluster操作实战

reshrad Redis槽位

1.redis-cli --cluster reshard 127.0.0.1:300012.然后按照提示操作,首先选择要移动的槽位数量,然后选择接受节点

必会Redis单节点、Sentinel和Cluster操作实战


3.再选择需要从哪些节点移出槽位

必会Redis单节点、Sentinel和Cluster操作实战

4.最后输入done,然后yes确定5.检查移动后的结果 redis-cli --cluster info 127.0.0.1:30001

必会Redis单节点、Sentinel和Cluster操作实战


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭