Centos7下安装redis实战(单机版以及集群)
一、背景
因项目需要,要引入redis做缓存,就在centos7下亲自安装了一遍redis,刚好趁着这个机会就来把redis的概念以及单机版和集群版redis安装步骤记录下来,在此和大家一起分享。
二、Redis介绍
1.什么是Redis?
Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型有:字符串类型、散列类型、列表类型、集合类型、有序集合类型。
2.Redis的应用场景:
缓存(数据查询、短连接、新闻内容、商品内容等等);(最多使用)
分布式集群架构中的session分离;
聊天室的在线好友列表;
任务队列;(秒杀、抢购、12306等等)
应用排行榜;
网站访问统计;
数据过期处理(可以精确到毫秒).
三、安装前准备
1.因为redis是C语言开发的,所以我们建议在linux上运行,故本文介绍在centos7上安装redis.
2.安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc,命令如下:
yum -y install gcc-c++
四、安装单机版redis
1.从官方网站下载对应的redis源码包,命令如下:
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
2.对源码文件的压缩包进行解压缩,命令如下:
tar -zxvf redis-3.0.0.tar.gz
3.进入到解压后的源码文件夹,并对源码进行编译,命令如下:
cd redis-3.0.0.tar.gz && make
4.安装编译完成后的文件(prefix参数用来指定redis的安装位置,一般建议安装在/usr/local/redis下)
make install PREFIX=/usr/local/redis
5.把/usr/local/redis/bin文件夹下所有文件移动到/usr/local/redis文件夹下,并删除/usr/local/redis/bin文件夹
mv /usr/local/redis/bin/* /usr/local/redis/ && rm -rf /usr/local/redis/bin
6.安装完成,启动单机版redis
1).控制台直接启动:cd /usr/local/redis && ./redis-server
2).后台启动:
I.复制源码包下的redis.conf到redis的安装目录.
II.修改redis.conf,将其中daemonize no项修改daemonize yes
III.后台启动:cd /usr/local/redis && ./redis-server redis.conf
7.启动并测试客户端
redis-cli -p 端口(默认6379) -h 主机ip(默认localhost即127.0.0.1)
五、安装redis集群
1.redis-cluster集群架构图

架构细节:
(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.
(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 会根据节点数量大致均等的将哈希槽映射到不同的节点。
2.创建集群:(说明:由于机器有限,我们先使用一台linux服务器来创建6个redis实例从而创建一个伪集群)
第一步:在/usr/local文件夹下创建redis-cluster文件夹作为redis集群根目录
cd /usr/local && mkdir redis-cluster
第二步:在redis-cluster文件夹下安装6个redis实例,安装步骤同单机版安装步骤。
第三步:分别编辑每个实例的redis.conf文件指定端口为7001到7006,并打开每一个配置文件中cluster-enable yes前面的注释(即去掉'#'号)。
第四步:拷贝redis源码文件夹下的名为redis-trib.rb的ruby脚本文件到redis-cluster文件夹下
cp redis-trib.rb /usr/local/redis-cluster/
第五步:执行该ruby脚本前,在系统中安装ruby环境
1).yum -y install ruby
2).yum -y install rubygems
第六步:安装执行ruby脚本redis-trib.rb执行所依赖的gem包:redis-3.0.0.gem
gem install redis-3.0.0.gem
第七步:启动所有的redis实例
./redis-server redis.conf
第八步:使用redis-trib.rb创建集群(如果是在不同的机器上安装实例,只需要在任意一台机器上执行以下命令即可)
./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006
出现以下界面,证明redis集群安装成功。

第九步:进入任意一台实例安装位置,可以使用以下命令来进行连接集群:
./redis-cli -p 7001 -c(-c说明是连接集群,单机的时候不需要加该参数)
到此,我们就完成了redis的单机 以及集群版的安装和测试。
三、总结
通过这次redis安装的经历,让我感觉到远处看安装集群什么的很困难,其实自己操作起来,感觉没有什么困难的,只要记住步骤就好了。所以不能给自己设限,什么事情都要保持一颗想要尝试的心。
Centos7下安装redis实战(单机版以及集群)的更多相关文章
- centos7下安装docker(21docker swarm集群创建)
创建swarm集群: 实验环境:盗图 swarm-manager是manager node,swarm-worker1和swarm-worker2是worker node. 所有节点的docker版本 ...
- CentOS7.2 安装redis 3.0.6集群
1.环境确认 a.系统版本查看 [hadoop@p168 ~]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) b.安装依 ...
- Linux CentOs7 下安装 redis
Linux CentOs7 下安装 redis 请将以下命令放入linux命令行中运行 如果安装过程前没有安装GCC请先安装 命令如下 $ yum install gcc-c++ $ wget ht ...
- Centos7下安装redis并能使得外网访问
一.安装脚本 #!/bin/bash #FileName: install_redis_centos7.sh #Date: #Author: LiLe #Contact: @qq.com #Versi ...
- CentOS7下安装Redis
一.下载redis wget http://download.redis.io/releases/redis-4.0.6.tar.gz 二.解压 tar -zxvf redis-4.0.6.tar.g ...
- Linux安装配置Redis,CentOS7下安装Redis教程
1.下载Redis wget https://download.redis.io/releases/redis-3.0.4.tar.gz 2 . 解压Redis .tar.gz 3 . 编译安装Red ...
- centos7下安装redis的步骤
原贴地址:https://www.cnblogs.com/zuidongfeng/p/8032505.html 我linux服务器上是这样启动的: cd /tool/redis/redis-3.2.8 ...
- centos7 docker 安装 zookeeper 3.4.13 集群
假设三台主机的ip分别为: 主机一:192.168.0.168 主机二:192.168.0.169 主机三:192.168.0.170 三台主机的安装步骤相似,以主机一为例: 1. 查找zookeep ...
- Centos7.4安装elasticsearch6.3+kibana6.3集群
Centos7.4安装elasticsearch+kibana集群 Centos7.4安装elasticsearch+kibana集群 主机环境 软件环境 主机规划 主机安装前准备 安装jdk1.8 ...
随机推荐
- PuTTY乱码问题解决办法
原文链接:http://www.henshiyong.com/archives/403.html 使用PuTTY 时,遇到了乱码问题,查看了别人介绍的信息,解决掉了. 方法其实很简单,现在分享出来. ...
- python在使用redis时zadd错误
最近在看<redis实战>,在写zadd时报错 Traceback (most recent call last): File "<stdin>", lin ...
- 2017-11-29 由runnable说起Android中的子线程和主线程
1.首先纠正一个观点,就是runnable运行在子线程中是错误的观念.runnable只是创建了一个执行任务的对象,但是它本身并不会创建一个新的子线程,Runable只是给你接口让你实现工作线程的工作 ...
- ubuntu下mysql远程连接
第一步: vim /etc/mysql/my.cnf找到bind-address = 127.0.0.1 注释掉这行,如:#bind-address = 127.0.0.1 ...
- noip第24课作业
1. 马走日 [问题描述] 马在中国象棋以日子形规则移动.请编写一段程序给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...
- hdu 1443 Joseph【约瑟夫环】
题目 题意:一共有2k个人,分别为k个好人和k个坏人,现在我们需要每隔m个人把坏人挑出来,但是条件是最后一个坏人挑出来前不能有好人被挑出来..问最小的m是多少 约瑟夫环问题,通常解决这类问题时我们把编 ...
- 种类并查集——带权并查集——POJ1182;HDU3038
POJ1182 HDU3038 这两个题比较像(一类题目),属于带权(种类)并查集 poj1182描绘得三种动物种类的关系,按照他一开始给你的关系,优化你的种类关系网络,最后看看再优化的过程中有几处矛 ...
- AngularJS 模块及provide
一.模块 模块是一些功能的集合,如控制器.服务.过滤器.指令等子元素组成的整体. 1.注册和使用 模块相当于是一个注册表,保存着名字和编程元素的对照表,可存入也可取出. angular.module( ...
- ASP.NET MVC Form表单验证与Authorize特性
一.Form表单验证 1.基本概念 表单验证是一个基于票据(ticket-based)[也称为基于令牌(token-based)]的系统.当用户登录系统以后,会得到一个包含基于用户信息的票据(tick ...
- RxSwift学习笔记5:Binder
使用 Binder 创建观察者 //Observable序列(每隔1秒钟发出一个索引数) let scheduleObservable = Observable<Int>.interval ...