快速了解Redis、Cachecloud集群的搭建及管理

Redis集群的搭建及管理

目录

Redis集群的搭建及管理... 1

一、概述... 2

二、Redis介绍... 3

2.1、Redis与Memcache的对比.... 3

2.1.1、区别(单服务).... 3

2.1.2、优劣.... 4

2.1.3、适用.... 4

2.2、Redis与Kafka的对比.... 5

2.3、Redis适用场景.... 5

三、Redis服务安装及测试... 5

3.1、获取安装包.... 5

3.2、安装依赖.... 6

3.3、解压编译.... 7

3.4、配置.... 8

3.5、启动并检查.... 9

四、Redis集群安装及测试... 9

4.1、环境配置.... 12

4.2、集群预设.... 12

4.3、集群搭建.... 14

4.4、创建集群.... 19

4.5、检查.... 25

4.6、使用.... 26

4.6.1、启动集群.... 26

4.6.2、客户端连接集群.... 27

4.6.3、关闭集群.... 28

4.6.4、重启集群.... 29

4.6.5、集群使用测试.... 30

4.6.6、集群分区原理.... 31

4.6.7、集群分区好处.... 33

4.6.8、查看集群信息.... 34

4.6.9、新增节点.... 35

4.6.10、删除节点.... 44

4.6.11、总结.... 51

五、Cachecloud集群安装及测试... 52

5.1、基本介绍 https://github.com/sohutv/cachecloud.. 52

5.2、安装环境.... 52

5.3、搭建Cachecloud.. 53

5.3.1、下载CacheCloud.. 53

5.3.2、初始化数据库.... 54

5.3.3、构建cachecloud.. 54

5.3.4、启动cachecloud.. 55

5.4、访问网站.... 58

5.6、使用.... 60

5.6.1、Cachecloud加入机器.... 63

5.6.2、加入redis服务监控.... 69

5.6.3、用户生成.... 77

5.6.4、用户申请.... 80

5.6.5、集群管理.... 98

六、总结... 100

 

一、概述

本次通过搭建适用于机房的Redis集群作为对企业需要的Redis服务管理集群,这里针对于Redis的性能与存储方式作为介绍,以Cachecloud作为集群管理介绍,讲述了Redis集群的搭建、管理及使用。其中,Redis服务安装及测试与Redis集群安装及测试针对于Redis 5版本及以上,Cachecloud管理集群针对与Redis 3以上、Redis 5以下。本次对Cachecloud的集群只做最基础的安装及使用讲解及不进行任何后续优化,只使用源码包。PS:要不是公司内部要我培训Redis,我才不是闲的没事来整理这个!o(╥﹏╥)o

二、Redis介绍

具体看官网,讲得再多不离其中其宗。简单一点,为什么要使用缓存数据库,假如系统有千万级别的数据,数据信息基本不变,但每次加载所有数据时都要请求数据库,重复的查询操作严重降低了服务器性能。针对这种数据,把它们加入缓存数据库中,每次取数判断缓存数据库中是否为空,如果为空,再去请求数据库并将数据加入缓存。如下:

2.1、Redis与Memcache的对比

2.1.1、区别(单服务)

1)存储方式:Memecache把数据全部存在内存里,断电后会挂掉,数据不能超过内存大小。Redis部份存在硬盘上,保证数据的持久性。

2)数据支持:Memcache对数据类型支持相对简单。Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储,相对复杂。

3)底层模型:新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

4)value大小:redis最大可以达到512MB,而memcache最大仅有1MB。

5)运行环境:redis目前官方只支持LINUX 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁,但是没有放到主干上。

 

2.1.2、优劣

    应该说Memcached和Redis都能很好的满足解决我们的问题,它们性能都很高,总的来说,可以把Redis理解为是对Memcached的拓展,是更加重量级的实现,提供了更多更强大的功能。具体来说:

1)性能:性能上都很出色,具体到细节,由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起 Memcached,还是稍有逊色。

2)内存空间和数据量大小:MemCached可以修改最大内存,采用LRU算法。Redis增加了VM的特性,突破了物理内存的限制。

3)操作性:MemCached数据结构单一,仅用来缓存数据,而Redis支持更加丰富的数据类型,也可以在服务器端直接对数据进行丰富的操作,这样可以减少网络IO次数和数据体积。

4)可靠性:MemCached不支持数据持久化,断电或重启后数据消失,但其稳定性是有保证的。Redis支持数据持久化和数据恢复,允许单点故障,但是同时也会付出性能的代价。

 

2.1.3、适用

    Memcached:动态系统中减轻数据库负载,提升性能;做缓存,适合多读少写,大数据量的情况(如人人网大量查询用户信息、好友信息、文章信息等)。

Redis:适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统(如新浪微博的计数和微博发布部分系统,对数据安全性、读写要求都很高)。

 

2.2、Redis与Kafka的对比

redis是内存数据库,只是它的list数据类型刚好可以用作消息队列而已。

kafka是消息队列,消息的存储模型只是其中的一个环节,还提供了消息ACK和队列容量、消费速率等消息相关的功能,更加完善。

 

2.3、Redis适用场景

不需要实时更新但是又极其消耗数据库的数据。

需要实时更新,但是更新频率不高的数据。

在某个时刻访问量极大而且更新也很频繁的数据。

注:大部分数据其实都可以放在缓存数据库中,但涉及到钱、密钥、业务关键性核心数据等私密性数据等,是不能放在缓存数据库中的。

 

三、Redis服务安装及测试

这里只说编译安装了,详情请看:

https://blog.csdn.net/qq_37960324/article/details/104476378

这个主要针对于无网环境,更具有建设性(这个挺重要的!)

3.1、获取安装包

http://download.redis.io/releases/

 wget http://download.redis.io/releases/redis-5.0.7.tar.gz

 

3.2、安装依赖

安装的编译工具:make、gcc

3.3、解压编译

解压至当前目录

tar xf redis-5.0.7.tar.gz

编译

make

make PREFIX=/usr/local/redis install

 

3.4、配置

拷贝主配置文件

cp redis.conf /usr/local/redis/

编辑配置文件

daemonize yes:支持后台进程

 

sed -i -e "s/bind 127.0.0.1/#bind 127.0.0.1/g" /usr/local/redis/redis.conf

sed -i -e "s/# requirepass foobared/requirepass 123456/g" /usr/local/redis/redis.conf

sed -i -e "s/daemonize no/daemonize yes/g" /usr/local/redis/redis.conf

3.5、启动并检查

cd /usr/local/redis/bin/

./redis-server ../redis.conf

检查

 

四、Redis集群安装及测试

参考官网中文版:http://redisdoc.com/topic/cluster-spec.html

参考:http://redisdoc.com/topic/cluster-tutorial.html

一、集群简介

1、什么是redis集群?

redis集群是一个可以在多个redis节点之间进行数据共享的设施(installation)

图片来源:https://www.cnblogs.com/bcde/p/11163362.html

2、redis集群特性

不支持需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个 Redis 节点之间移动数据, 并且在高负载的情况下, 这些命令将降低 Redis 集群的性能, 并导致不可预测的行为。

Redis 集群通过分区(partition)来提供一定程度的可用性(availability): 即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求。

3、redis集群优点

将数据自动切分(split)到多个节点的能力。
当集群中的一部分节点失效或者无法进行通讯时, 仍然可以继续处理命令请求的能力。

4、连接

与任意实例连接,即可获得整个集群的数据!通过这个,得做一下读写分离了。

二、集群数据共享

参考:https://www.cnblogs.com/bcde/p/11163362.html

参考:https://www.cnblogs.com/wangfajun/p/12198149.html

Redis 集群使用数据分片(sharding)而非一致性哈希(consistency hashing)来实现: 一个 Redis 集群包含 16384 个哈希槽(hash slot), 数据库中的每个键都属于这 16384 个哈希槽的其中一个, 集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽, 其中 CRC16(key) 语句用于计算键 key 的 CRC16 校验和 。

这个得在之后的集群操作中熟悉。

三、集群主从复制

为了使得集群在一部分节点下线或者无法与集群的大多数(majority)节点进行通讯的情况下, 仍然可以正常运作, Redis 集群对节点使用了主从复制功能: 集群中的每个节点都有 1 个至 N 个复制品(replica), 其中一个复制品为主节点(master), 而其余的 N-1 个复制品为从节点(slave)。

只要一个槽点存活一个节点服务器,那么集群就不会蹦!

四、Redis 集群的一致性保证(guarantee)风险项,需要考虑解决办法

Redis 集群不保

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值