Redis安装及配置集群

Redis安装及配置集群

1 什么是Redis

​ ​ Redis是C语言开发的一款开源的高性能键值对(K-V)数据库(NoSql 数据存储 )。Redis是将数据存放到内存中,由于内容存取速度快所以redis被广泛应用在互联网项目中。

​ ​ 下载地址:https://download.redis.io/releases/

2 Liunx中安装Redis

2.1 环境

​ ​ Redis使用C语言开发,须在Liunx中安装C语言环境

yum install gcc-c++

2.2 安装Redis

上传

​ ​ 上传依然使用Xftp,上传地址**/usr/upload**

解压

cd /usr/upload/redis-3.0.0

make

​ ​ 安装至指定目录

make install PREFIX=/usr/local/redis

2.3 启动和关闭Redis

1)直接启动–不推荐

cd /usr/local/redis/bin

./redis-server 
#./redis-cli -h 127.0.0.1 -p 6379	#使用-h指定地址	使用-p指定端口号

​ ​缺点:ssh命令窗口关闭,redis-server程序结束

关闭方式:ctrl+c

2)后端启动

​ ​ 拷贝redis.conf至安装目录下

cp /usr/upload/redis-3.0.0/redis.conf  /usr/local/redis/bin

​ ​ 修改配置文件,将daemonize修改为yes

vim /usr/local/redis/bin/redis.conf 
daemonize yes

启动

cd /usr/local/redis/bin/

./redis-server redis.conf

关闭

./redis-cli -p 端口号 shutdown

3 Redis常用命令

Redis常用命令-菜鸟教程

4 持久化

4.1 RDB

​ ​ RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘。

​ ​ RDB是Redis默认采用的持久化方式,在redis.conf配置文件中默认有此下配置:

save 900 1  #900秒内容如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
save 60 10000 #表示60秒内如果超过10000个key被修改,则发起快照保存

​​ 在redis.conf中:

​ ​ 配置dir指定rdb快照文件的位置

​ ​ 配置dbfilenam指定rdb快照文件的名称

​ ​ Redis启动后会读取RDB快照文件,将数据从硬盘载入到内存。

4.2 AOF

​ ​ 默认情况下Redis没有开启AOF(append onlyfile)方式的持久化,可以通过appendonly参数开启:

appendonly yes

​ ​ AOF文件的保存位置和RDB文件的位置相同,都是通过dir参数设置的,默认的文件名是appendonly.aof,可以通过appendfilename参数修改:

appendfilename appendonly.aof

​ ​ AOF持久化策略如下:

#appendfsync always   #每次有数据修改发生时都会写入AOF文件。
appendfsync everysec  #每秒钟同步一次,该策略为AOF的缺省策略。
#appendfsync no        #从不同步。高效但是数据不会被持久化。

5 配置集群

5.1 主从复制(了解)

5.1.1 什么是主从复制

​ ​ 持久化保证了即使redis服务重启也会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障。

5.1.2 配置主从复制

​​ 主: 无需配置

​​ 从:

​ ​ 1) 拷贝新的Redis

cd /usr/local

cp -r redis redis-6380

2) 修改从redis服务器上的redis.conf文件

port 6380
# slaveof <masterip> <masterport>
slaveof 192.168.23.16 6379 #主redis ip  主redis端口**

​ ​ 当前该从redis服务器所对应的主redis是192.168.23.16,端口是6379

5.1.3 主从复制过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0kwui2nW-1663641262829)(C:\Users\RJ\AppData\Roaming\Typora\typora-user-images\1663639158770.png)]

​ ​ 复制过程说明:

​ ​ 1、 slave 服务启动,slave 会建立和master 的连接,发送sync 命令。

​ ​ 2、master启动一个后台进程将数据库快照保存到RDB文件中

​ ​ 3、master 就发送RDB文件给slave

​ ​ 4、slave 将文件保存到磁盘上,然后加载到内存恢复

​ ​ 5、master把缓存的命令转发给slave

​​ 注意:主死了,从只能读

6 Redis集群搭建(伪分布式)

6.1 redis-cluster架构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T2wqyppV-1663641262830)(C:\Users\RJ\AppData\Roaming\Typora\typora-user-images\1663639417172.png)]

细节

​ ​ 1) 所有的redis节点彼此互联(PING-PONG机制),节点的fail是通过集群中超过半数的节点检测失效时才生效。 至少需要三台Redis

在这里插入图片描述

​ ​ 2)存取数据时连接任一节点都可以,但集群中有一个节点fail整个集群都会fail

Redis 集群中内置了 16384 个哈希槽。Redis搭建集群时会将这些槽分配给集群。
当需要在Redis 集群中放置一个 key-value 时,
redis 先对 key 使用 crc16 算法算出一个结果,
然后把结果对 16384 求余数,
这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,
redis 会根据节点数量大致均等的将哈希槽映射到不同的节点

6.2 Redis集群的搭建

​ ​ Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。
​ ​ Redis集群至少需要6台服务器。

​ ​ 搭建伪分布式。可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006

6.2.1 集群搭建环境

​ ​ 使用ruby脚本搭建集群,需要安装ruby。

​ ​ 上传 redis-3.0.0.gem/usr/upload

​ ​ .gem文件下载地址

yum install ruby

yum install rubygems

cd /usr/upload

gem install redis-3.0.0.gem 

6.2.2 搭建步骤

注意:必须删除dump.rdb和appendonly.aof文件

​ ​ 搭建伪分布式,需要6个redis实例放到/usr/local/redis-cluster目录下,并且运行在不同的端口7001-7006

mkdir redis-cluster
cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7001
cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7002
cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7003
cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7004
cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7005
cp -r  /usr/local/redis  /usr/local/redis-cluster/redis-7006
6.2.2.1 创建6个redis实例

​ ​ 每个实例运行在不同的端口,修改redis.conf配置文件。配置文件中还需要把cluster-enabled yes前的注释去掉。

6.2.2.2 启动每个redis实例

​ ​ 创建脚本文件 start-all.sh 放在**/usr/java/redis-cluster**目录下

cd /usr/local/redis-cluster/redis-7001/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7002/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7003/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7004/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7005/bin
./redis-server redis.conf
cd /usr/local/redis-cluster/redis-7006/bin
./redis-server redis.conf

​ ​ 修改权限并启动

chmod 777 start-all.sh

./start-all.sh

​ ​ 创建脚本文件 shutdown-all.sh 放在**/usr/java/redis-cluster**目录下

cd redis-7001
./redis7001/ bin/redis-cli -p 7001 shutdown
./redis7001/ bin/redis-cli -p 7002 shutdown
./redis7001/ bin/redis-cli -p 7003 shutdown
./redis7001/ bin/redis-cli -p 7004 shutdown
./redis7001/ bin/redis-cli -p 7005 shutdown
./redis7001/ bin/redis-cli -p 7006 shutdown

​ ​ 修改权限并启动

chmod 777 shutdown-all.sh

./shutdown-all.sh
6.2.2.3.使用ruby搭建集群
cd /usr/upload/redis-3.0.0/src

./redis-trib.rb create --replicas 1 192.168.23.16:7001 192.168.23.16:7002 192.168.23.16:7003 192.168.23.16:7004 192.168.23.16:7005  192.168.23.16:7006
6.2.2.4 测试
./redis-cli -c -p 7001
6.2.2.5 redis cluster命令
cluster info   #打印集群的信息

cluster nodes  #列出集群当前已知的所有节点(node),以及这些节点的相关信息 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值