首页 > 数据库 >redis集群部署(运维笔记)

redis集群部署(运维笔记)

时间:2023-06-10 14:06:40浏览次数:36  
标签:运维 cluster redis Redis 6379 集群 节点

Redis是一个高性能的NoSQL数据库,由于其高性能和可靠性,越来越多的企业开始使用Redis。在生产环境中,Redis集群是必不可少的,因为它可以提供高可用性和可扩展性。本文将介绍如何在Linux环境下部署Redis集群。

1. 安装Redis

首先,需要在每个节点上安装Redis。可以使用以下命令从Redis官方网站下载Redis并解压缩。

wget http://download.redis.io/releases/redis-6.2.4.tar.gz
tar xzf redis-6.2.4.tar.gz
cd redis-6.2.4
make

2. 配置Redis

在每个节点上,需要创建一个Redis配置文件redis.conf。可以使用以下命令创建一个基本的配置文件。

cp redis.conf redis-6379.conf

需要修改以下配置项:

  • bind: 指定Redis服务绑定的IP地址。如果需要让Redis服务对外提供服务,则需要将其设置为0.0.0.0。
  • port: 指定Redis服务监听的端口号。每个节点的端口号应该不同。
  • cluster-enabled: 开启Redis集群模式。
  • cluster-config-file: 指定Redis集群状态文件的位置。每个节点应该使用相同的状态文件。
  • cluster-node-timeout: 指定节点之间通信的超时时间。建议设置为15000毫秒。

以下是示例配置文件:

bind 0.0.0.0
port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000

3. 启动Redis

在每个节点上,可以使用以下命令启动Redis服务。

./src/redis-server redis-6379.conf

4. 创建Redis集群

在任意一个节点上,可以使用以下命令创建Redis集群。

./src/redis-cli --cluster create <node1>:6379 <node2>:6379 <node3>:6379 ...

其中,<node1>、<node2>和<node3>是Redis节点的IP地址。需要指定所有节点的IP地址,以及每个节点的端口号(默认为6379)。

如果一切正常,将会看到以下输出:

>>> Performing hash slots allocation on 3 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383

此时,Redis集群已经创建成功。

5. 测试Redis集群

可以使用以下命令测试Redis集群是否正常工作。

./src/redis-cli -c

-c选项表示使用集群模式。在Redis命令行界面中,可以使用各种Redis命令,例如set、get、incr等。

6. 扩展Redis集群

如果需要扩展Redis集群,可以添加新的节点。可以使用以下命令将新的节点添加到Redis集群中。

./src/redis-cli --cluster add-node <new_node>:6379 <existing_node>:6379

其中,<new_node>是新节点的IP地址,<existing_node>是现有节点的IP地址。添加新节点后,需要将新节点的数据迁移到新节点上。

7. 移除Redis节点

如果需要移除一个Redis节点,可以使用以下命令将节点从Redis集群中移除。

./src/redis-cli --cluster del-node <node>:6379 <node_id>

其中,<node>是要删除的节点的IP地址,<node_id>是要删除的节点的ID。

总结

以上是在Linux环境下部署Redis集群的详细步骤。需要注意的是,部署Redis集群需要仔细检查每个节点的配置文件和状态文件,确保它们的一致性。此外,还需要定期备份Redis数据,以确保数据的安全性和可靠性。

标签:运维,cluster,redis,Redis,6379,集群,节点
From: https://blog.51cto.com/lidabai/6454488

相关文章

  • redis通用命令及其五种基本数据结构
    Redis通用命令介绍:KEYS:查看符合模版的所有key,DEL:删除一个指定的KEYEXISTS:判断KEY是否存在EXPIRE:给一个key设置有效期,有效期到期时该KEY会自动删除TTL:查看一个key到剩余有效期示例:127.0.0.1:6379>existstest_key(integer)1127.0.0.1:6379>expire......
  • Python自动化运维
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运算......
  • 2023-06-09:什么是Redis事务?原理是什么?
    2023-06-09:什么是Redis事务?原理是什么?答案2023-06-09:Redis中的事务是以一组命令的形式出现的,这些命令被认为是最小的执行单位。事务可以保证在一个单独独立的隔离操作中执行所有命令,而且所有命令都会按照指定的顺序经过序列化后被执行。在服务端执行事务的过程中,不受其他客户端发送......
  • 2023-06-09:什么是Redis事务?原理是什么?
    2023-06-09:什么是Redis事务?原理是什么?答案2023-06-09:Redis中的事务是以一组命令的形式出现的,这些命令被认为是最小的执行单位。事务可以保证在一个单独独立的隔离操作中执行所有命令,而且所有命令都会按照指定的顺序经过序列化后被执行。在服务端执行事务的过程中,不受其他客户端......
  • 基于k8s环境部署RabbitMQ集群
    一、前言本次案例是基于Statefulset部署RabbitMQ集群,同时基于StorageClass(存储类)来作为集群数据的持久化后端,因此在此之前已经部署好了NSF作为后端存储  1、创建服务命名空间Namespace#kubectlcreatensrabbitmq2、创建rbac权限ServiceAccount是kubernetesPod中的......
  • spring-boot-data Redis 使用
    spring-boot-dataredisSpringBoot提供了Redis集成启动器(Starter),依赖于spring-data-redis和lettuce库。spring-data-redis:对Reids底层开发包高度封装,让开发者对Redis的CRUD操作起来更加方便。创建工程导入相关依赖<dependency><groupId......
  • gateway结合redis做限流
    本篇是针对已经实现了gateway基础功能的项目,如果需要实现基础功能可以参考https://www.cnblogs.com/cbzhl/p/17467019.html针对于并发量比较高的时候,如果不针对对应的服务做限流操作,可能造成服务器压力过大,宕机等情况,为此出现了多种限流的方式:计数器算法(Counter)。--设计一个......
  • (转)七年老运维实战中的 Shell 开发经验总结
    原文:https://mp.weixin.qq.com/s/0VmbKcttZ0aKpVRb65ycew无论是系统运维,还是应用运维,均可分为“纯手工”—>“脚本化”—>“自动化”—>“智能化”几个阶段,其中自动化阶段,主要是将一些重复性人工操作和运维经验封装为程序或脚本,一方面避免重复性操作及风险,另一方面提高执行效率......
  • Elasticsearch专题精讲—— REST APIs —— Document APIs —— Reindex API —— 跨
    Reindexfromremote(跨集群索引)https://www.elastic.co/guide/en/elasticsearch/reference/8.8/docs-reindex.html#reindex-from-remoteReindexsupportsreindexingfromaremoteElasticsearchcluster:Reindex支持从远程Elasticsearch集群进行重新索引:curl-XP......
  • 【缓存】J2Cache —— 基于内存和 Redis 的两级 Java 缓存框架的使用方法
    本文目录一、J2Cache简介二、数据读取三、使用方法及实际示例3.1引用Maven3.2准备配置3.3编写代码3.3.1Demo示例3.3.2实际案例四、常见问题4.1J2Cache的使用场景是什么?4.2为什么不能在程序中设置缓存的有效期4.3如何使用memcached作为二级缓存4.4使用何种Redis的存......