单机版本

因为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. Codeforces Round #332 (Div. 2)A. Patrick and Shopping 水

    A. Patrick and Shopping   Today Patrick waits for a visit from his friend Spongebob. To prepare for ...

  2. oc61--block

    // // main.m // Block基本使用:一种数据类型,应用在动画,多线程,集合遍历,网络请求回调. // 用来保存一段代码,在恰当的时候拿出来调用.功能类似于函数.函数不能嵌套定义,blo ...

  3. B1821 [JSOI2010]Group 部落划分 Group 二分答案&&并查集

    这个题正解是最小生成树,但是...最大值最小?一看就是二分答案啊!不用多想,直接二分答案加暴力验证就行了. 题干: Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒 ...

  4. KMP字符匹配算法

    上个假期就学了KMP,但是基本不用,所以忘干净了...这个的核心思想就是next数组,next数组学名叫最长相同前缀后缀.还不错的算法,KMP 匹配的过程中比原来的暴力匹配多了一个跳来跳去的next. ...

  5. bzoj3033 太鼓达人——欧拉图搜索

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3033 考虑那 (1<<k) 个数,要形成答案,必然是相邻两个数间有 k-1 个重 ...

  6. Tunnel Warfare(树状数组+二分)

    http://poj.org/problem?id=2892 题意:输入n,m.n代表数轴的长度,m代表操作数. D x: 摧毁点x Q x: 询问村庄x最左与最右没有被摧毁的点的距离 R  :恢复最 ...

  7. Appium + python - long_press定位操作实例

    from appium.webdriver.common.touch_action import TouchActionfrom appium import webdriverimport timei ...

  8. springboot启动报错:Cannot determine embedded database driver class for database type NONE.

    package cn.zb.test; import org.springframework.boot.SpringApplication; import org.springframework.bo ...

  9. .Net Core添加分布式Session

    一.Session HTTP是一个无状态协议,Web服务器将每一个请求都视为独立请求.并且不保存之前请求中用户的值. Session 状态是ASP.NET Core提供的一个功能,它可以在用户通应用访 ...

  10. Objective-C—— @Property详解

    实例变量:属性其实说直白点就是 ivar + setter + getter(实例变量+存取方法),不过在OC中属性多了字面量这一系列特殊关键字使得OC属性有些不同. 成员属性我们应该都使用过,比如现 ...