Redis 单机和集群环境摆设教程

打印 上一主题 下一主题

主题 552|帖子 552|积分 1656

下面是 Redis 单机和集群环境摆设的详细教程,包括摆设过程中的注意事项以及一个使用案例。Redis 是一个开源的内存中数据结构存储系统,广泛应用于缓存、消息队列、实时分析等场景。

一、Redis 单机环境摆设

1. 环境准备



  • 操纵系统:Linux(保举 Ubuntu 20.04 或 CentOS 7)
  • C 编译器:GCC 或 Clang
  • tcl:用于运行 Redis 自检(可选)
2. 安装 Redis

2.1 安装依赖

在 Ubuntu 上:
  1. sudo apt update
  2. sudo apt install build-essential tcl
复制代码
在 CentOS 上:
  1. sudo yum groupinstall 'Development Tools'
  2. sudo yum install tcl
复制代码
2.2 下载并编译 Redis


  • 从 Redis 官网 下载最新版本的 Redis 源代码:
    1. wget http://download.redis.io/releases/redis-6.2.6.tar.gz
    2. tar xzf redis-6.2.6.tar.gz
    3. cd redis-6.2.6
    复制代码
  • 编译 Redis:
    1. make
    复制代码
  • 运行测试(可选):
    1. make
    2. test
    复制代码
  • 安装 Redis:
    1. sudo make
    2. install
    复制代码
2.3 配置 Redis


  • 创建配置文件目录:
    1. sudo mkdir /etc/redis
    复制代码
  • 复制默认配置文件:
    1. sudo cp redis.conf /etc/redis/
    复制代码
  • 编辑配置文件 /etc/redis/redis.conf:
    1. sudo nano /etc/redis/redis.conf
    复制代码

    • 将 supervised 设置为 systemd:
      1. supervised systemd
      复制代码
    • 指定数据长期化目录:
      1. dir /var/lib/redis
      复制代码
    • 指定日志文件:
      1. logfile "/var/log/redis.log"
      复制代码
    • 配置内存限制(根据机器实际环境调解):
      1. maxmemory 256mb
      复制代码

2.4 设置 Redis 为系统服务


  • 创建 Redis 数据目录:
    1. sudo mkdir /var/lib/redis
    2. sudo chown redis:redis /var/lib/redis
    复制代码
  • 创建 systemd 服务文件 /etc/systemd/system/redis.service:
    1. [Unit]
    2. Description=Redis In-Memory Data Store
    3. After=network.target
    4. [Service]
    5. User=redis
    6. Group=redis
    7. ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
    8. ExecStop=/usr/local/bin/redis-cli shutdown
    9. Restart=always
    10. [Install]
    11. WantedBy=multi-user.target
    复制代码
  • 启动并启用 Redis 服务:
    1. sudo systemctl start redis
    2. sudo systemctl enable redis
    复制代码
  • 验证 Redis 是否运行正常:
    1. redis-cli ping
    复制代码
    输出 PONG 表现 Redis 运行正常。
3. Redis 配置选项详解



  • 长期化配置

    • appendonly yes:启用 AOF 长期化。
    • save 900 1:每 900 秒至少有 1 个键被修改时触发 RDB 快照。

  • 安全配置

    • requirepass <password>:设置访问暗码。
    • bind 127.0.0.1:限制访问到本地。

  • 性能优化

    • maxmemory-policy volatile-lru:内存达到上限时移除最少使用的键。

4. 注意事项



  • 内存限制:确保 maxmemory 设置符合,避免 Redis 进程使用过多内存导致系统不稳定。
  • 安全性:在生产环境中启用 requirepass,并限制外部访问。
  • 长期化策略:根据业务需要选择符合的长期化策略(AOF 或 RDB)。
  • 日志文件巨细:监控日志文件巨细,避免占用过多磁盘空间。
  • 备份与恢复:定期备份 Redis 数据文件,以防数据丢失。

二、Redis 集群环境摆设

Redis 集群可以提供高可用性和数据分片,适用于大规模数据场景。
1. 环境准备



  • 多台服务器:至少 6 台节点(3 主 3 从)
  • 操纵系统:Linux(保举 Ubuntu 20.04 或 CentOS 7)
  • 网络配置:各节点之间需要相互通讯
2. 安装 Redis

在每台服务器上按照单机摆设的步骤安装 Redis。
3. 配置 Redis 集群

3.1 配置文件调解

在每个节点上编辑 /etc/redis/redis.conf,修改以下配置:
  1. port 6379
  2. cluster-enabled yes
  3. cluster-config-file nodes.conf
  4. cluster-node-timeout 5000
  5. appendonly yes
复制代码
3.2 启动 Redis 实例

在每台机器上启动 Redis 实例:
  1. redis-server /etc/redis/redis.conf
复制代码
3.3 创建 Redis 集群


  • 在任一节点上执行以下下令:
    1. redis-cli --cluster create \
    2.   192.168.1.1:6379 192.168.1.2:6379 192.168.1.3:6379 \
    3.   192.168.1.4:6379 192.168.1.5:6379 192.168.1.6:6379 \
    4.   --cluster-replicas 1
    复制代码

    • 以上下令创建一个 3 主 3 从的 Redis 集群。
    • --cluster-replicas 1 指定每个主节点有一个从节点。

  • 确认集群状态:
    1. redis-cli -c -h 192.168.1.1 -p 6379 cluster info
    复制代码
    你应该看到类似以下输出:
    1. cluster_state:ok
    2. cluster_slots_assigned:16384
    3. cluster_slots_ok:16384
    4. cluster_slots_pfail:0
    5. cluster_slots_fail:0
    6. cluster_known_nodes:6
    7. cluster_size:3
    复制代码
4. Redis 集群配置详解



  • 节点配置

    • cluster-enabled yes:启用集群模式。
    • cluster-node-timeout:节点通讯超时时间。

  • 长期化配置

    • appendonly yes:启用 AOF 长期化,恰当需要实时长期化的应用。
    • save "":在集群模式下禁用 RDB 长期化,以进步性能。

5. 注意事项



  • 网络配置:确保所有节点的 6379 端口对其他节点开放。
  • 节点数量:建议使用至少 3 主 3 从,以进步数据可靠性。
  • 数据备份:定期备份 appendonly.aof 文件,确保数据安全。
  • 故障恢复:使用 redis-cli --cluster fix 修复节点故障。

三、Redis 使用案例:简单计数器

1. Java 实现 Redis 计数器

1.1 添加依赖

在 Maven 项目中添加 Redis 的依赖:
  1. <dependency>
  2.     <groupId>redis.clients</groupId>
  3.     <artifactId>jedis</artifactId>
  4.     <version>4.2.3</version>
  5. </dependency>
复制代码
1.2 编写 Java 程序

  1. import redis.clients.jedis.Jedis;
  2. public class RedisCounter {
  3.     public static void main(String[] args) {
  4.         // 连接到 Redis
  5.         Jedis jedis = new Jedis("localhost", 6379);
  6.         // 清空计数器
  7.         jedis.del("counter");
  8.         // 增加计数器
  9.         for (int i = 0; i < 10; i++) {
  10.             jedis.incr("counter");
  11.             System.out.println("Counter value: " + jedis.get("counter"));
  12.         }
  13.         // 关闭连接
  14.         jedis.close();
  15.     }
  16. }
复制代码
1.3 运行 Java 程序

编译并运行程序:
  1. mvn compile
  2. mvn exec:java -Dexec.mainClass="RedisCounter"
复制代码
2. Python 实现 Redis 计数器

2.1 安装 Redis 库

  1. pip install redis
复制代码
2.2 编写 Python 程序

  1. import redis
  2. def main():
  3.     # 连接到 Redis
  4.     r = redis.Redis(host='localhost', port=6379, db=0)
  5.     # 清空计数器
  6.     r.delete('
  7. counter')
  8.     # 增加计数器
  9.     for i in range(10):
  10.         r.incr('counter')
  11.         print(f'Counter value: {r.get("counter").decode()}')
  12. if __name__ == '__main__':
  13.     main()
复制代码
2.3 运行 Python 程序

  1. python redis_counter.py
复制代码
3. 注意事项



  • 错误处置惩罚:在实际应用中,需要处置惩罚连接非常和网络题目。
  • 线程安全:Redis 自带的原子操纵支持多线程环境。
  • 长期化:根据业务需要选择符合的长期化策略。

总结

通过以上步骤,我们完成了 Redis 的单机和集群环境摆设,并实现了一个简单的计数器应用。Redis 提供了高性能和丰富的数据结构,恰当各种场景下的缓存和数据存储需求。
摆设过程中的注意事项



  • 环境配置:确保各节点环境一致,网络连接正常。
  • 内存管理:合理设置内存限制,避免系统资源耗尽。
  • 安全性:在生产环境中,建议启用暗码和网络访问限制。
  • 监控与优化:使用工具(如 Redis Insight)监控 Redis 性能,并根据需要举行优化。
  • 故障恢复:定期备份数据,确保出现故障时可以快速恢复。
   通过合理的配置和优化,Redis 可以为应用程序提供快速、可靠的数据访问服务,是构建高性能分布式系统的紧张组件。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表