目录
一、Redis介绍
Redis(Remote Dictionary Server)是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis 支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等类型,并提供了对这些数据结构的丰富操作。
Redis 的主要特点包括:
- 内存存储:Redis 将数据存储在内存中,这使得其读写速度非常快。然而,这也意味着 Redis 不能存储大量的数据,因为它受到系统内存的限制。
- 数据结构丰富:除了基本的键值对,Redis 还支持字符串、哈希、列表、集合、有序集合等多种数据结构。
- 数据持久化:Redis 支持将内存中的数据持久化到磁盘上,这样即使服务器重启也不会丢失数据。Redis 提供了两种持久化方式:RDB(Redis DataBase)和 AOF(Append Only File)。
- 发布/订阅模型:Redis 支持发布/订阅模型,使得不同的客户端之间可以相互通信。
- 事务支持:Redis 支持简单的事务操作,包括原子性的执行多个命令。
- Lua 脚本:Redis 支持使用 Lua 脚本来执行复杂的操作,从而提高了操作的灵活性和性能。
- 分布式和集群:Redis 支持将数据分布到多个节点上,以实现水平扩展。此外,Redis 还提供了集群解决方案,如 Redis Cluster,用于自动分割数据到多个 Redis 节点。
二、安装Redis
1、安装依赖
yum -y install gcc-c++ gcc automake autoconf libtool make
2、创建redis安装目录
mkdir -p /home/daye/opt/redis
3、进入到redis压缩包目录,解压redis
tar zxvf redis-6.2.6
4、进入redis解压目录,编译安装redis,安装成功之后,会在安装目录生产执行文件存在在bin目录下
make && make install PREFIX=/home/daye/opt/redis
5、进入redis安装目录,并将redis解压目录下的redis 配置文件复制到当前目录
cd /home/daye/opt/redis
cp /home/daye/tools/redis-6.2.6/redis.conf .
6、创建redis运行pid、log文件存放目录 run,及redis数据存放目录 data
mkdir run data
7、修改redis.conf 文件,设置pid、log及数据存放目录和其他配置
#注释绑定固定IP
#bind 127.0.0.1 -::1
#启用后台运行模式
daemonize yes
#修改pid文件存放目录
pidfile /home/daye/opt/redis/run/redis_6379.pid
#修改log文件存放目录
logfile /home/daye/opt/redis/run/redis_6379.log
#设置密码
requirepass wsx-123
#设置数据存放目录
dir /home/daye/opt/redis/data
#修改RDB文件名称
dbfilename dump_redis_6379.rdb
#开启aof持久化模式
appendonly yes
#修改AOF文件名称
appendfilename 'appendonly_redis_6379.aof'
#设置AOF持久化策略 always:每次执行写命令都会刷盘,非常慢,也非常安全; everysec:每秒刷盘一次,兼顾性能和安全; no:将刷盘操作交给系统,很快,不安全
appendfsync everysec
#开启混合模式(必须先开启aof)
aof-use-rdb-preamble yes
8、启动redis服务
./bin/redis-server /home/daye/opt/redis/redis.conf
9、登录redis客户端,使用auth 输入密码获取授权
./bin/redis-cli
三、Redis 主从
1、按照上面安装步骤,安装从库
2、修改从库redis.conf文件
#主节点的redis ip和端口
replicaof 192.168.1.213 6379
#开启只读
replica-read-only yes
#主节点的redis密码,如果没有密码注释掉即可
masterauth wsx-123
3、启动redis服务
./bin/redis-server /home/daye/opt/redis/redis.conf
4、登录redis客户端,使用auth 输入密码获取授权,并验证主从功能
./bin/redis-cli
四、Redis 集群
1、按照1.1安装步骤,安装居群节点
2、配置213服务器redis实例1:复制redis.conf 文件,并重命名为redis-6381.conf
#修改端口
port 6381
#启动集群模式
cluster-enabled yes
#设置集群节点间访问密码
masterauth wsx-123
#集群节点信息文件,这里最好和 port 对应上
cluster-config-file nodes-6381.conf
#修改RDB文件名称
dbfilename dump_cluster_6381.rdb
#修改pid文件存放目录
pidfile /home/daye/opt/redis/run/cluster_6381.pid
#修改log文件存放目录
logfile /home/daye/opt/redis/run/cluster_6381.log
#修改AOF文件名称
appendfilename 'appendonly_cluster_6381.aof'
# 节点离线的超时时间
cluster-node-timeout 5000
# 默认情况下如果redis集群如果检测到至少有1个hash slot不可用,集群将停止查询数据。
# 如果所有slot恢复则集群自动恢复。
# 如果需要集群部分可用情况下仍可提供查询服务,设置为no。
cluster-require-full-coverage no
3、配置213服务器redis实例2:复制redis-6381 文件,并重命名为redis-6382.conf,将配置文件中6381改成6382
#修改端口
port 6382
#启动集群模式
cluster-enabled yes
#设置集群节点间访问密码
masterauth wsx-123
#集群节点信息文件,这里最好和 port 对应上
cluster-config-file nodes-6382.conf
#修改RDB文件名称
dbfilename dump_cluster_6382.rdb
#修改pid文件存放目录
pidfile /home/daye/opt/redis/run/cluster_6382.pid
#修改log文件存放目录
logfile /home/daye/opt/redis/run/cluster_6382.log
#修改AOF文件名称
appendfilename 'appendonly_cluster_6382.aof'
# 节点离线的超时时间
cluster-node-timeout 5000
# 默认情况下如果redis集群如果检测到至少有1个hash slot不可用,集群将停止查询数据。
# 如果所有slot恢复则集群自动恢复。
# 如果需要集群部分可用情况下仍可提供查询服务,设置为no。
cluster-require-full-coverage no
4、按2、3步配置其他两台服务器
5、在各个服务器上启动redis
启动
./bin/redis-server /home/daye/opt/redis/redis-6381.conf
./bin/redis-server /home/daye/opt/redis/redis-6382.conf
关闭
./bin/redis-cli -p 6381 -a wsx-123 shutdown
./bin/redis-cli -p 6382 -a wsx-123 shutdown
6、创建集群
./bin/redis-cli -a wsx-123 --cluster create --cluster-replicas 1 192.168.1.213:6381 192.168.1.213:6382 192.168.1.214:6381 192.168.1.214:6382 192.168.1.215:6381 192.168.1.215:6382
7、登录并验证集群
./bin/redis-cli -a wsx-123 -p 6381 -c
8、集群管理
查看集群
./bin/redis-cli -a wsx-123 -p 6381 cluster nodes
添加节点
./bin/redis-cli -a wsx-123 --cluster add-node 192.168.1.xxx:6381 192.168.1.xxx:6381
删除节点
./bin/redis-cli -a wsx-123 --cluster del-node abed8834b23a1bd50ce3c549702407be015b2017
关闭节点
./bin/redis-cli -a wsx-123 -c -h 192.168.1.xxx -p 6381 shutdown