单机版本

因为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. FileZilla Client 免费又好用的ftp工具

    设置文件同步关联(这个功能很好用) 很好用,很方便! 防止掉线 编辑->设置

  2. ningbooj--1655--木块拼接(贪心)

     [1655] 木块拼接 时间限制: 1000 ms 内存限制: 65535 K 问题描述 好奇的skyv95想要做一个正方形的木块,现在有三种颜色的矩形木块,颜色分别为"A" ...

  3. PCB MS SQL 将字符串分割为表变量(表值函数)

    Create FUNCTION [dbo].[SplitTable]( @s varchar(max), --待分拆的字符串 ) --数据分隔符 ),), col varchar(max)) --建立 ...

  4. 迭代,IDA*

    1.codevs1288 题意:对于一个分数a/b(a!=1),将它表示为1/x + 1/y + 1/z ……的形式,x,y,z……互不相同 多解取加数少的,加数相同时,取最小的分数最大的. 思路:经 ...

  5. Python 33(2)进程理论

    一:什么是进程         进程指的是一个正在进行 / 运行的程序,进程是用来描述程序执行过程的虚拟概念 进程vs程序 程序:一堆代码 进程:程序的执行的过程 进程的概念起源于操作系统,进程是操作 ...

  6. Springboot+hibernate简单的增删改查

    1.创建好项目之后在配置端口号(也可以不用配置,默认端口8080) #server server.port= server.tomcat.uri-encoding=utf- 2.配置mysql #My ...

  7. SqlMap常用参数(一)

    sqlmap可谓是利用sql注入的神器了,sqlmap的参数很多,接下介绍几种常见的参数. 一.注入access数据库常用的参数 sqlmap.py -u "url"  //判断参 ...

  8. thinkphp 上传多张图片

    tp3.23 没有找到同时上传多张图片 手册有讲过:http://www.kancloud.cn/manual/thinkphp/1876 其实可以通过,多张图片多次上传来到达效果 hmlt: < ...

  9. MySQL 的单表查询

    单表查询 语法: 一.单表查询的语法 SELECT 字段1,字段2 ,...FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY filed LIMIT ...

  10. Spark Streaming概述

    Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力. 其中包括:资源管理框架,Apache YARN.Apache Mesos:基于内存的 ...