redis高可用集群解决方案

时间:2022-10-21 19:40:32

redis高可用集群解决方案

redis介绍

  • redis简介

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
    Redis 与其他 key - value 缓存产品有以下三个特点:
    Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
    Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    Redis支持数据的备份,即master-slave模式的数据备份。

  • Redis 优势

    性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
    丰富的数据类 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
    原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
    丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

  • redis用途

    众多语言都支持Redis,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。

    拿大型网站来举个例子,比如a网站首页一天有100万人访问,其中有一个板块为推荐新闻。要是直接从数据库查询,那么一天就要多消耗100万次数据库请求。上面已经说过,Redis支持丰富的数据类型,所以这完全可以用Redis来完成,将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。

    总之,Redis的应用是非常广泛的,而且极有价值,真是服务器中的一件利器,所以从现在开始,我们就来一步步学好它。

redis安装

1.redis下载并安装

$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz
$ tar -xzvf redis-2.8.17.tar.gz
$ cd redis-3.2.9
$ make

2.redis集群介绍与配置

要让redis3集群正常工作,需要至少三个主节点,要想真正的高可用,没个主节点至少要配置一个从节点,所以需要6台虚拟机,部署3个Master+3个Slave

redis高可用集群解决方案

redis所需要配置文件及说明如下图
统一修改redis.conf配置文件,主要是加粗部分配置,如下:

配置选项 选项值 说明
daemonize yes 是否作为守护进程运行
pidfile /var/run/redis.pid 如果后台运行需要一个pid 上面为默认pid
port 6379 默认redis提供服务的端口号
databases 1 redis默认有16个数据库,建议设置一个数据库
cluster-enabled yes 打开redis集群
cluster-config-file nodes-6379.conf 启动时自动创建,不用人为干涉,可设定路径
cluster-node-timeout 15000 节点互连时间(毫秒)
cluster-migration-barrier 1 一个主节点在拥有多少个好的从节点的时候割让出来给没有主节点的从节点
cluster-require-full-coverage yes key space没有被集群任何节点覆盖,则停止写入
appendonly yes 是否启用aof持久化,默认为快照
dir /alidata/server/redis 节点数据持久化目录,可自行配置

所有机器配置完成后,启动redis服务

创建集群

1.安装ruby 和rubygems(这里需要注意 ruby 版本需要在1.8.7以上)
yum -y install ruby rubygems
2.查看安装版本
ruby -v 查看安装版本 如下
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
3.gem 安装redis ruby接口
gem install redis
redis高可用集群解决方案
4.执行redis集群创建命令
cd /alidata/server/redis/src
cp redis-trib.rb /usr/local/bin/redis-trib
redis-trib create –replicas 1 192.168.1.111:7111 192.168.1.112:7112 192.168.1.113:7113 192.168.1.114:7114 192.168.1.115:7115 192.168.1.116:7116
redis高可用集群解决方案
redis高可用集群解决方案
5.创建完成后集群测试
redis-cli -p 7111 -a xxxx
redis高可用集群解决方案
是否成功自行测试
注,此文章只讲到主要配置和集群,其他细节需要亲自实验才能知道,如:iptables需要放行redis端口等。如果需要了解具体实现原理和细节问题,以及优缺点,可参考官方集群文档
http://redisdoc.com/topic/cluster-tutorial.html