目录
[1. 基本概念](#1. 基本概念)
[2. 服务器端](#2. 服务器端)
[3. 存储和获取数据](#3. 存储和获取数据)
[4. 协议和命令](#4. 协议和命令)
[5. 高可用性](#5. 高可用性)
[6. 缓存](#6. 缓存)
[7. 监控和日志](#7. 监控和日志)
[1. 准备6台centos7,全部安装redis](#1. 准备6台centos7,全部安装redis)
[2. 关闭所有防火墙](#2. 关闭所有防火墙)
[3. 全部安装前置组件](#3. 全部安装前置组件)
[1. 上传软件包并解压安装](#1. 上传软件包并解压安装)
[2. 配置参数](#2. 配置参数)
[3. 重启服务](#3. 重启服务)
[1. 下载并查看](#1. 下载并查看)
[2. 创建群集](#2. 创建群集)
[3. 查看群集状态](#3. 查看群集状态)
redis介绍
Redis是一个开源的高性能键值存储系统,广泛应用于企业级应用中。它支持多种数据结构,包括字符串、列表、哈希表和集合(set)。Redis 提供了丰富的 API,包括客户端 SDK 和命令行工具。
1. 基本概念
- **Redis** 是一个键值存储系统。
- **字符串**:用于存储简单的文本数据。
- **列表**:用于存储有序的无序集合(如哈希表)。
- **哈希表**:用于存储键值对,每个键对应一组值。
- **集合**:用于存储唯一标识符的集合。
2. 服务器端
Redis 的服务器端通常由多个进程组成。以下是 Redis 的主进程和从进程的一些关键部分:
主进程
- `redis-server`:主进程负责启动和管理 Redis 服务器。
- `redis-cli`:用于与 Redis 进行交互的命令行客户端。
- `sysstat`:监控 Redis 服务器的各种性能指标。
从进程
- `redis-cli`:从进程负责连接到 Redis 服务器并执行命令。
- `client`:发送命令给 Redis 主进程,并获取响应。
- `exec`:通过管道将命令转发给 Redis 主进程,从而实现异步 I/O
3. 存储和获取数据
储存
Redis 支持多种存储类型,包括字符串、列表、哈希表和集合。以下是一些常用的数据操作:
- **set**:设置键的值,并返回一个标志。
- **get**:从键中获取值,返回空值或错误信息。
- **append**:将数据追加到字符串的末尾。
- **delete**:删除键。
- **exists**:检查键是否存在。
获取
Redis 支持多种查询类型,包括列表、哈希表和集合。以下是一些常用的数据查询操作:
- **lrange**:获取列表中指定区间的元素。
- **hgetall**:获取哈希表中的所有键值对。
- **scard**:统计哈希表中的键数量。
- **zcard**:统计集合中的元素数量。
4. 协议和命令
Redis 支持多种协议,包括 Redis 2.0 和之前的版本。以下是一些常用的命令:
- `SET`:设置键的值并返回一个标志。
- `GET`:从键中获取值,返回空值或错误信息。
- `APPEND`:将数据追加到字符串的末尾。
- `DELETE`:删除键。
- `EXISTS`:检查键是否存在。
- `LPUSH`:向列表末尾添加元素。
- `RPUSH`:向列表头部添加元素。
- `LPOP`:从列表中移除并返回第一个元素。
- `RPOP`:从列表头部移除并返回第一个元素。
- `SADD`:将值加入集合。
- `SMEMBERS`:获取集合中的所有键。
- `SCARD`:统计集合中的键数量。
- `ZADD`:向集合中添加一个或多个元素。
5. 高可用性
Redis 支持多种高可用性方案,包括主从复制、HAProxy 和 Redis Sentinel。以下是一些常见的高可用性配置:
- **主从复制**:确保多个服务器之间可以同时访问数据库。
- **HAProxy**:一个高性能的反向代理,允许负载均衡和故障转移。
- **Redis Sentinel**:提供高可用性的服务,包括哨兵、集群管理器和监控功能。
6. 缓存
Redis 支持多种缓存机制,如 Redis Cache、Redis Memcached 和 Redis Memcached Server。以下是一些常见的缓存配置:
- **Redis Cache**:用于存储和获取缓存中的数据。
- **Redis Memcached**:一个高性能的内存缓存。
- **Redis Memcached Server**:一个高性能的内存缓存服务器。
7. 监控和日志
Redis 提供了多种监控和日志功能,包括 Redis Sentinels、Redis Dashboard、Redis Slaves 和 Redis Cluster。以下是一些常见
的监控配置:
- **Redis Sentinels**:提供负载均衡和故障转移。
- **Redis Dashboard**:一个前端界面,方便用户查看 Redis 服务器的性能指标。
- **Redis Slaves**:支持集群管理功能。
- **Redis Cluster**:支持集群管理功能。
前提准备:
1. 准备6台centos7,全部安装redis
192.168.180.100
192.168.180.110
192.168.180.120
192.168.180.130
192.168.180.140
192.168.180.150
2. 关闭所有防火墙
bash
systemctl stop firewalld && setenforce 0
3. 全部安装前置组件
bash
yum install -y gcc gcc-c++ make
正式部署步骤-六台全部部署
1. 上传软件包并解压安装
软件包可以在我主页资源内寻找,我已上传🚨

bash
#解压
tar zxvf redis-3.2.9.tar.gz -C /usr/src/
#安装
cd /usr/src/redis-3.2.9/
make && make install
cd /usr/src/redis-3.2.9/utils/
./install_server.sh
#查看是否启动
netstat -antp | grep redis


2. 配置参数
bash
vim /etc/redis/6379.conf
#修改以下参数
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
cluster-require-full-coverage no





3. 重启服务
bash
/etc/init.d/redis_6379 restart
netstat -antp | grep 6379

在第一台192.168.180.100上配置脚本创建群集
1. 下载并查看
bash
yum install ruby rubygems -y
gem install redis --version 3.2.0

2. 创建群集
bash
cd /usr/src/redis-3.2.9/src/
./redis-trib.rb create --replicas 1 192.168.180.100:6379 192.168.180.110:6379 192.168.180.120:6379 192.168.180.130:6379 192.168.180.140:6379 192.168.180.150:6379
遇到要输入yes的就输入yes

3. 查看群集状态
bash
./redis-trib.rb check 192.168.180.100:6379

- 测试群集
bash
redis-cli -h 192.168.180.140 -p 6379 -c
#插入数值
set centos 7.3
#查询数值
get centos

