博客
关于我
Redis-----大集合(主从复制,哨兵,集群)
阅读量:239 次
发布时间:2019-03-01

本文共 3194 字,大约阅读时间需要 10 分钟。

Redis 安装与使用指南

1. Redis 安装

1.1 安装前准备

在安装 Redis 之前,确保你的系统满足以下要求:

  • 操作系统: CentOS 7 或以上版本。
  • 内存:建议至少 1GB RAM。
  • 存储空间:至少 50MB 可用空间。

1.2 通过 YUM 安装

Redis 可通过 YUM 仓库安装。首先安装必要的依赖包:

yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutilsscl enable devtoolset-9 bash

1.3 下载并安装 Redis 源码包

下载 Redis 的最新版本,并解压安装:

wget http://download.redis.io/releases/redis-4.0.10.tar.gztar -xf redis-4.0.10.tar.gzcd redis-4.0.10make && make install

1.4 启动 Redis 服务

/etc/redis 目录下创建配置文件:

mkdir /etc/rediscp redis.conf /etc/redis/6379.conf

使用 systemd 管理 Redis 服务:

# 创建服务配置文件echo "[Unit]Description=RedisAfter=network.target[Service]Type=simpleExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf --daemonize noExecStop=/usr/local/bin/redis-cli -p 6379 shutdownWorkingDirectory=/usr/local/bin[Install]WantedBy=multi-user.target" > /etc/systemd/system/redis.service# 启用服务systemctl enable redis.servicesystemctl daemon-reloadsystemctl start redis

2. Redis 配置

2.1 配置监听地址

编辑配置文件:

vi /etc/redis/6379.conf# bind 127.0.0.1 192.168.1.10

2.2 启动守护进程模式

在配置文件中设置 daemonize yes,然后重启服务:

systemctl stop redissystemctl start redis

2.3 检查服务状态

systemctl status redis

3. Redis 数据类型

3.1 基本数据类型

Redis 支持多种数据类型,包括字符串、列表、哈希、集合和有序集合。

3.1.1 字符串

基本操作示例:

# 设置值redis-cli -p 6379 set name shark EX 10# 获取值redis-cli -p 6379 get name# 执行批量操作redis-cli -p 6379 --batch \  set name1 value1 \  set name2 value2

3.1.2 列表

列表支持动态大小和快速插入删除:

# 添加元素(左端插入)redis-cli -p 6379 lpush list a b c# 获取列表长度redis-cli -p 6379 llen list# 弹出左端元素redis-cli -p 6379 lpop list

3.1.3 哈希

哈希适用于键值对存储:

# 设置多个字段redis-cli -p 6379 hmset userinfo username shark userpsw 123456# 获取单个字段redis-cli -p 6379 hget userinfo username

3.1.4 集合

集合元素唯一且无序:

# 添加元素redis-cli -p 6379 sadd s1 a b c# 获取所有元素redis-cli -p 6379 smembers s1

4. PHP 与 Redis 集成

4.1 安装 PHP-Redis 驱动

安装步骤:

# 下载并解压wget https://github.com/phpredis/phpredis/archive/4.2.0.tar.gzcd phpredis-4.2.0make && make install# 配置 PHPvi /etc/php.iniextension=redis.so

4.2 验证安装

php -m | grep redis

4.3 使用 Redis 连接

示例连接代码:

connect('localhost', 6379);$redis->set('key', 'value');echo $redis->get('key');?>

5. Redis 持久化存储

Redis 提供两种持久化方式:RDB 和 AOF。

5.1 RDB

RDB 将数据库快照保存为二进制文件:

# 启用 RDBvi /etc/redis/6379.confsave 900 1# 或禁用自动生成# save 300 10# save 60 10000# 启用 bgsaveredis-cli bgsave

5.2 AOF

AOF 记录所有写入命令:

vi /etc/redis/6379.confappendonly yesappendfreq 60# 启用 AOFredis-cli -p 6379 bgrewriteaof

6. Redis 主从复制

6.1 配置主从

从服务器执行:

redis-cli -p 6379 slaveof 172.16.153.178 6379

6.2 配置 Sentinel

Sentinel 负责监控主从状态:

# 配置文件示例bind 0.0.0.0port 27000daemonize yessentinel monitor mymaster 127.0.0.1 6379 2sentinel down-after-milliseconds mymaster 3000sentinel failover-timeout mymaster 5000

6.3 故障转移

Sentinel 会自动将从服务器升级为主服务器:

# 停止主服务器redis-cli -p 6380 shutdown# 检查 Sentinel 状态redis-cli -p 27000 info

7. Redis 集群

7.1 集群特点

  • 主从复制
  • 数据分片存储
  • 高可用性

7.2 集群节点

每个节点负责特定范围的数据槽。

7.3 集群安装

步骤:

  • 配置主节点和从节点。
  • 启动所有节点。
  • 创建集群:
  • redis-cli --cluster create 192.168.122.230:7001 192.168.122.230:7002 192.168.122.230:7003 --cluster-replicas 1

    7.4 集群扩容

    添加新节点并分配槽:

    # 添加主节点redis-cli --cluster add-node new_host:new_port existing_host:existing_port --cluster-master# 分配槽redis-cli --cluster reshard

    通过以上步骤,用户可以完成 Redis 的安装、配置和使用,确保数据库的高可用性和数据持久化。

    转载地址:http://lexv.baihongyu.com/

    你可能感兴趣的文章
    OAuth2:项目演示-模拟微信授权登录京东
    查看>>
    OA系统多少钱?OA办公系统中的价格选型
    查看>>
    OA系统选型:选择好的工作流引擎
    查看>>
    OA让企业业务流程管理科学有“据”
    查看>>
    OA项目之会议通知(查询&是否参会&反馈详情)
    查看>>
    Vue.js 学习总结(13)—— Vue3 version 计数介绍
    查看>>
    OA项目之我的会议(会议排座&送审)
    查看>>
    OA项目之我的会议(查询)
    查看>>
    OA项目之我的审批(会议查询&会议签字)
    查看>>
    OA项目之项目简介&会议发布
    查看>>
    ObjC的复制操作
    查看>>
    Object c将一个double值转换为时间格式
    查看>>
    object detection之Win10配置
    查看>>
    object detection训练自己数据
    查看>>
    object detection错误Message type "object_detection.protos.SsdFeatureExtractor" has no field named "bat
    查看>>
    object detection错误之Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
    查看>>
    object detection错误之no module named nets
    查看>>
    Object of type 'ndarray' is not JSON serializable
    查看>>
    Object Oriented Programming in JavaScript
    查看>>
    object references an unsaved transient instance - save the transient instance before flushing
    查看>>