Linux系统下Redis的集群开发管理

Redis作为一款优秀的nosql数据库,在缓存应用上很大优势,直接从内存中获取数据,减轻数据库的访问压力,本身采用<K,V>的存储格式,读取效率非常高.
下面简单介绍下Linux系统下Redis的使用

1.Redis的安装:

1.首先将redis源码包拷贝到Linux系统环境;(需要有gcc环境才能安装)
在在线环境下运行箭头所指的命令即可在线安装
在这里插入图片描述
2.解压缩tar命令,将安装包解压缩
3.编译和安装,编译需要进入源码目录使用make命令,安装我这里根据教程安装在如下路径在这里插入图片描述

2.简单的启动redis

启动redis一般有两种方式,一种是直接启动,启动后系统界面一直显示redis界面,操作其他行为的时候很不方便;一般是采用配置文件的形式来启动:
找到/root/redis-3.0.7/redis.conf这个conf的配置文件,复制到安安装目录的bin文件下:/usr/local/redis/bin
在这里插入图片描述
修改这个配置文件:
daemonize 的属性默认no改为yes
然后就可以通过后台配置的方式启动redis了,找到安装后的bin文件夹,通过配置启动,注意后面需要加上redis.conf
在这里插入图片描述
这样就简单启动了,看看是否启动可以查看进程
ps aux|grep redis

3.简单使用客户端连接

上面的方式是简单的客户端连接,下面这个方式是指定连接,后面在搭建redis集群的时候会用到,h/p分别表示服务器的ip地址和端口号
本次学习我没有那么多电脑,本机也带不动多台虚拟机,只能以一个虚拟机的多个端口来模拟
在这里插入图片描述
可以连通:
在这里插入图片描述

4.Redis的五种数据类型

redis是键值对的数据库,有5中主要数据类型:

字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset)
字符串类型(string)是最基本的数据类型,它可以存储任何形式的字符串。其它的四种类型都是字符串类型的不同形式.
散列类型(hash)类似hashmap,有待深入学习
列表类型(list)类似Java中的List,有序列表
集合类型(set)具有唯一性,常用操作是向集合添加、删除、判断某个值是否存在,集合内部是使用值为空的散列表实现的。除此之外还有响应的运算,求差和交等
有序集合类型(zset)功能完善,也正因为工程完善,所以效率较低.

5.Redis的持久化方案

redis作为数据库,肯定没法一直存放在内存中
redis有两种持久化方案:
1.Rdb:快照形式,定期保存数据到磁盘,对数据直接经行保存
2.aof:这个方案其实是对命令的记录,将命令记录到一个配置文件中,恢复数据时直接将保存的命令再执行一遍,内有优化机制,会过滤冗余的操作指令
配置位置在redis.conf中可以看到
搜索/rdb或者/aof即可

6.重点:Redis的集群

6.1集群的简单介绍

有时候一台主机的内存并不能满足常规的所需内存大小,我们需要增加主机来扩容,同时还要考虑集群的高可用;
集群中每一个redis之间都能完成通讯,客户端只要访问了一个,就连上了这个redis集群
在这里插入图片描述
redis-cluster 投票:容错
在这里插入图片描述
1.所有的节点之间彼此相互连接,通过ping-pong来确定对方是否健在,内部数据传输的效率很快
2.fail节点确定失败需要有一半的节点检测失效时才生效.一半的ping发过去没有回应,当出现fail节点而且节点没有备用节点的时候,集群就挂掉了,所以备份节点很重要,又因为节点需要超过半数的投票机制,所以一般最少需要三个节点,保证高可用,再加上三个备份节点,一共最少6个
3.客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
4.redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

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

6.2集群的搭建

这里没有多台主机,选择在一台虚拟机上开放6个端口给redis做集群,
首先将redis复制6份放在一个文件夹中
需要6个redis实例。
需要运行在不同的端口7001-7006,需要修改redis.conf配置文件,分配端口7001-7006,否在运行在一个端口上肯定会报错。配置文件中还需要把cluster-enabled yes前的注释去掉。
将启动文件放在一个文件中,一起启动(也可以一个个启动)
在这里插入图片描述
写完后需要为这个文件增加可执行权
在这里插入图片描述
在这里插入图片描述
这里启动这个程序就将6个redis客户端启动了
在这里插入图片描述
找到安装包下面的rb脚本文件,并复制到我们集群所在的文件夹下
在这里插入图片描述
在线安装ruby的环境:
yum install ruby
yum install rubygems
安装完运行环境还不够,需要安装一个gem文件,这里我没有找到3.0.7版本的,用的3.0.0也可以.
链接:https://pan.baidu.com/s/1sV10IfGh3VVvZ0U8X2RdQw
提取码:6zuy
复制这段内容后打开百度网盘手机App,操作更方便哦
将文件复制到linux系统中,安装,安装完后启动rb文件,启动的时候要带上ip地址和端口号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到这些信息说明启动成功,这里有端口号分配的说明,主从节点的说明,有节点的id 还要slots数
在这里插入图片描述

6.3客户端连接集群

连接集群需要带上端口号 - p 7001 -c,后缀-c很重要
还有第三方图形化客户端一个可以在windows环境下运行的连接工具
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值