单机版本

因为redis是c++写的,我们首先需要安装c++环境

1.在linux安装c++源码编译器 需要联网

linux输入yum -y install gcc gcc-c++

2.官网下载redis源码包redis-4.0.10.tar

3.使用xftp将redis-4.0.10.tar上传到linux  协议用xftp否则连不上

4.解压

如果没有权限 使用

chmod +x  redis压缩包  给可执行权限

5.进入解压目录。看是否有markFile目录 如果没有则自己创建一个

6.执行make进行编译

7.编译完成后将src下面的redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。、

8.将redis设置为后台启动  vi编辑器编辑redis.conf  使用/daemonize  收缩找到 改为yes

9. ./redis-server redis.conf 启动

10.使用ps aux|grep redis查看是否启动成功

11.使用telnet测试是否能连接

12.开放对外端口

(可能遇到的问题https://blog.csdn.net/csdn_lqr/article/details/53885808)

iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

12.iptables -L INPUT -n --line-numbers 查看是否开放成功

13.端口改为本机ip

集群版本

架构

3台主服务器

 redis内置16384 个哈希槽   会根据redis集群的数量 将这些hash槽均匀分配到每个集群节点上。
当我们通过命令存取数据的时候  redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数 算出(0-16384之间的数字)然后通过这个数字知道 值放在哪台服务器上
hash槽也可以根据每个节点的内存 来进行分配 比如一台机器内存比较少 那么槽的数量就分少一点
如果其中一个主节点完全挂掉了 那么整个集群也挂掉了

好处

集群架构模型主要用来缓解写入性能

1.复制单机版客户端6份

2.修改每个redis的redis.conf端口改为不一致 6379  6380 6381 6382 6383 6384  同时取消cluster-enable=yes注释 表示集群节点

3.创建批处理启动和关闭程序脚本

3.给新加的2个文件可执行权限

chmod +x start-all.sh

4.测试启动执行start-all.sh

5.查看是否启动成功

6.执行批量关闭的sh ./shutdown-all.sh  并查看redis的状态

7.开放所有端口对外访问权限

iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

7.安装rvm ruby

参考https://blog.csdn.net/zzzcl112/article/details/80531792(redis脚本 src目录下 redis-trip.rb是基于ruby写的)

8安装 ruby需要的redis接口gem install redis

8 ./redis-trib.rb create 192.168.65.128:6379 192.168.65.128:6380 192.168.65.128:6381

先创建3个主节点(去安装目录src下执行redis-trib.rb)

9.通过其中一个主节点查看集群节点./redis-trib.rb info 192.168.65.128:6379

主从复制模型

    在原来的集群架构上 每个主节点增加3个从节点。防止其中一台主服务器挂掉了 导致集群 宕机 ,当主服务器挂了后 从服务器自动提升为主
集群版我们新增了redis4  redis5  redis6   分别对应 redis1  redis2  redis3 的从节点
1.分别修改从节点的redis.conf  指定失联时间 超过时间则为故障节点 一般设置为15秒
还有就是设置多个读 缓解读性能

2.启动所有redis节点

3.将从节使用redis-trip.rb加入到集群

./redis-trib.rb add-node 192.168.65.128:6382 192.168.65.128:6379    6382是从节点  对应主节点是6379  通过他可以找到6379的集群

4.查看集群中的节点

./redis-trib.rb info 192.168.65.128:6379

可以发现多了一个节点 并没有分配hash槽   上面这里只是将从节点加入到了集群 并没有指定主节点

5.使用redis-cli登陆从节点并使用指定他的主节点

./redis-cli -h 192.168.65.128 -p 6382

输入cluster nodes  找到主节点的id

 6.通过id指定当前节点的主节点 cluster replicate e10dde558fb46fe8ae6fe66e54ef56032fbcce0f

7.查看是否分配成功

各个集群节点都有一个从节点

8.其他2个从节点重复此操作

9.最终的各个集群节点

10.使用kill杀死主节点进程

关闭6379

15秒后  配置文件配置的15秒。。可以发现6379的从节点切回了主节点

redis-linux上安装redis的更多相关文章

  1. linux上安装redis的踩坑过程2

    昨天在linux上安装redis后马上发现了其它问题,服务器很卡,cpu使用率上升,top命令查看下,原来有恶意程序在挖矿,此程序入侵了很多redis服务器,马上用kill杀掉它 然后开始一些安全策略 ...

  2. linux上安装redis的踩坑过程

    redis用处很广泛,我不再啰嗦了,我按照网上教程想在linux上安装下,开始了踩坑过程,网上买了一个linux centos7.3,滴滴云的,巨坑无比啊,不建议大家用这家的! redis 为4.0, ...

  3. Linux上安装Redis教程

    Redis的安装步骤: 步骤1.安装redis必须已经安装了gcc,如果没安装gcc 就使用命令 yum install -y gcc步骤2.下载redis包 下载地址:http://download ...

  4. linux上安装redis并使用

    1.下载:curl -O http://download.redis.io/releases/redis-4.0.6.tar.gz 2.在/usr/local/redis上解压:tar -zxvf r ...

  5. linux 上安装 redis

    一.安装gcc Redis是c语言开发的. 安装 redis 需要 c 语言的编译环境.如果没有 gcc 需要在线安装. yum install gcc-c++ 二.下载 redis 链接:https ...

  6. 在linux上安装redis

    下载Redis安装包 wget  http://download.redis.io/releases/redis-3.2.9.tar.gz 解压Redis安装包 tar -zxvf redis-3.2 ...

  7. Linux上安装Redis

    很多编程的小朋友一提到Linux脑袋就大了,我也一样,我是一个大专的学生,没有学过Linux,感觉自己欠缺很多,也知道了人和人之间的差距,当你真正的走上社会,才知道社会是什么,才知道没有学历找工作有多 ...

  8. 如何在Linux上安装Redis(内附详细教程)

    前言 hello,好久不见,又断更了一段时间.同事大部分离职了,但是活还是一样,所以只能硬着头皮顶上.现在总算歇会了,决定开启Redis源码系列,希望不要啪啪啪打脸. ​ 什么是redis? Redi ...

  9. linux 上安装redis

    下载地址:http://redis.io/download,下载最新文档版本. 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redis.io/ ...

  10. 在VMware的Linux系统上安装Redis

    在VMware的Linux系统上安装Redis 具体过程如下: 下载,解压和编译: 在执行make的时候报错,具体报错信息如下: zmalloc.o: In function `zmalloc_use ...

随机推荐

  1. 【Linux】Linux下配置apache

    一.获取软件: http://httpd.apache.org/   httpd-2.4.10.tar.gz 二.安装步骤: 解压源文件: 1) tar zvxf  httpd-2.4.10.tar. ...

  2. Extjs grid 某列点击弹窗

    { header : "单号", tooltip : '单号', dataIndex : 'transportCode', width : 130, sortable : true ...

  3. oc41--SEL

    // // main.m // 代理的时候用. /* SEL类型: 代表方法的签名,在类中的方法列表中存储着该签名与该方法对应的关系,类的方法列表存储在类对象中, 每个方法都有一个与之对应的sel类型 ...

  4. Android+Jquery Mobile学习系列(5)-SQLite数据库

    SQLite是轻量级的.嵌入式的.关系型数据库,目前已经在iPhone.Android等手机系统中使用,SQLite可移植性好,很容易使用,很小,高效而且可靠. 因为Android已经集成了SQLit ...

  5. [NOIP 2014] 生活大爆炸版石头剪刀布

    [题目链接] http://uoj.ac/problem/15 [算法] 按题意模拟即可[代码] #include<bits/stdc++.h> using namespace std; ...

  6. Snowflake Snow Snowflakes(查找)

    http://poj.org/problem?id=3349 题意:给出n组数据,每组数据有六个数,这n组数据中若有两组数据不管是从某个数顺时针读还是逆时针读都相同,输出“Twin snowflake ...

  7. 关于每次取PC的值为PC+4的问题

    关于ARM的书上常说由于流水线特性,在指令执行期间读取程序计数器时,读出的值需要为当前指令+4 一开始总是不理解,今天被一位大神一语道破其中精髓.... 程序计数器(PC)总是指向“正在取指”的指令 ...

  8. Html5 ajax的跨域请求

    1.XMLHttpRequest升级版已经实现了跨域请求.不过需要在后台设置:header("Access-Control-Allow-Origin:http://www.a.com&quo ...

  9. LocalDateTime查找最近的五分钟点

    /** * 最近的五分钟 * @param dateTime * @return */ public static LocalDateTime getNear5(LocalDateTime dateT ...

  10. WPF TextBox 仅允许输入数字

    因为在 IValueConverter 实现中,当文本不能转换为目标类型时返回 DependencyProperty.UnsetValue ,Validation.GetHasError 返回 tru ...