Redis的安装及创建节点、部署群集

Redis简介

  • Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
  • Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
  • Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。在内存数据库方面的另一个优点是, 相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。 同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

Redis定义

  • redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
  • Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。
  • Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
  • Redis存储

redis使用了两种文件格式:全量数据和增量请求。

  • 全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载;
  • 增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,序列化的操作包括SET、RPUSH、SADD、ZADD。
  • Redis群集
  • Redis 是一个开源的 key-value 存储系统,由于出众的性能,大部分互联网企业都用来做服务器端缓存。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。
  • Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了 16384 个 slot,每个 Redis 实例负责其中一部分 slot 。集群中的所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。
  • Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。
  • 下面说一下 Redis 集群搭建规划,由于集群至少需要6个节点(3主3从模式), 我本地也起不了那么多虚拟机 , 计划是在一台机器上模拟一个集群, 这和生产环境的集群搭建没本质区别。
  • Redis安装
    # wget http://download.redis.io/releases/redis-3.0.7.tar.gz
    # tar xzvf redis-3.0.7.tar.gz
    # ln -s redis-3.0.7 redis
    # cd redis
    # make && make install
    
    # redis-server &   //启动服务 &=后台运行
    # redis-cli shutdown   停止服务
  • 创建多节点
  • 创建实例目录
    # mkdir /usr/local/redis-cluster
    # cd redis-cluster/
    # mkdir -p 6379/data 6380/data 6381/data 6382/data 6383/data 6384/data
  • 复制执行脚本
    # mkdir /usr/local/redis-cluster/bin
    # cd /usr/local/redis/src
    # cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
  • 复制一个新 Redis 实例
    # cp /usr/local/redis/* /usr/local/redis-cluster/6379
    # vim /usr/local/redis-cluster/6379/redis.conf
        port 6379(每个节点的端口号)
        daemonize yes
        bind 192.168.86.130(绑定当前机器 IP)
        dir /usr/local/redis-cluster/6379/data/(数据文件存放位置)
        pidfile /var/run/redis_6379.pid(pid 6379和port要对应)
        cluster-enabled yes(启动集群模式)
        cluster-config-file nodes6379.conf(6379和port要对应)
        cluster-node-timeout 15000
        appendonly yes
  • \cp -rf 命令是不使用别名来复制
    # \cp -rf /usr/local/redis-cluster/6379/* /usr/local/redis-cluster/6380
    # \cp -rf /usr/local/redis-cluster/6379/* /usr/local/redis-cluster/6381
    # \cp -rf /usr/local/redis-cluster/6379/* /usr/local/redis-cluster/6382
    # \cp -rf /usr/local/redis-cluster/6379/* /usr/local/redis-cluster/6383
    # \cp -rf /usr/local/redis-cluster/6379/* /usr/local/redis-cluster/6384
  • 分别修改6380 、6381、6382、6383、6384节点配置文件
    vim redis.conf
    :%s/6379/6380/g       //文本内使用全局替换
  • 开启所有节点服务(&是后台运行)
    # /usr/local/bin/redis-server /usr/local/redis-cluster/6379/redis.conf&
    # /usr/local/bin/redis-server /usr/local/redis-cluster/6380/redis.conf&
    # /usr/local/bin/redis-server /usr/local/redis-cluster/6381/redis.conf&
    # /usr/local/bin/redis-server /usr/local/redis-cluster/6382/redis.conf&
    # /usr/local/bin/redis-server /usr/local/redis-cluster/6383/redis.conf&
    # /usr/local/bin/redis-server /usr/local/redis-cluster/6384/redis.conf&
  • 登录随便一个节点验证 确认节点服务可以正常登陆
    # /usr/local/redis-cluster/bin/redis-cli -h 192.168.86.130 -p 6379

  • 安装群集需要的 ruby环境
  • 由于 Redis 集群需要使用 ruby 命令,所以我们需要安装 ruby 和相关接口。
    # wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
    # tar xvf ruby-2.3.1.tar.gz
    # cd ruby
    # ./configure -prefix=/usr/local/ruby
    # make && make install
    # cd /usr/local/ruby
    # cp bin/ruby /usr/local/ruby
    # cp bin/gem /usr/local/bin
  • 安装rubygem redis依赖:
    # wget http://rubygems.org/downloads/redis-3.3.0.gem
    # gem install -l redis-3.3.0.gem
    # gem list --check redis gem

  • 安装 redis-trib.rb:

    # cp /usr/local/redis/src/redis-trib.rb /usr/local/bin
  • 安装完成ruby环境 执行下面命令确认是否正常
    # redis-trib.rb

  • 创建群集
  • 简单解释一下这个命令:调用 ruby 命令来进行创建集群,--replicas 1 表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,以及 solt 的大小,因为在 Redis 集群中有且仅有 16383 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。
    # /usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.86.130:6379 192.168.86.130:6380 192.168.86.130:6381 192.168.86.130:6382 192.168.86.130:6383 192.168.86.130:6384
    (yes)

    ?
    ?
    ?

  • 验证
  • 通过客户端命令连接上,通过集群命令看一下状态和节点信息等。
        # /usr/local/redis-cluster/bin/redis-cli -c -h 192.168.86.130 -p 6379   //登录
            192.168.86.130:6379> cluster info            //查看状态
            192.168.86.130:6379> cluster nodes      //查看节点信息

原文地址:http://blog.51cto.com/13630803/2146228

时间: 2024-08-13 11:55:02

Redis的安装及创建节点、部署群集的相关文章

window下redis的安装和创建redis启动服务

目录 window下redis的安装和部署 1.下载 2.解压下载的redis压缩包(位置随意,自己知道在哪里就行),里面的文件大概如下: 3.进入redis的解压目录下,进入cmd, 执行以下命令: 4. 启动redis服务 5. 最后,进入redis 额外的(把redis添加到环境变量中去) window下redis的安装和部署 1.下载 github地址: https://github.com/MicrosoftArchive/redis/releases 2.解压下载的redis压缩包(

Rabbitmq简介及部署群集

博文大纲:一.MQ简介二.什么是RabbitMQ?三.安装RabbitMQ四.部署Rabbitmq集群1)部署环境2)安装rabbitmq服务3)配置host文件,并将上述两个节点加入集群4)rabbitmq01配置群集并将rabbitmq02.03加入01群集5)访问web界面6)web页面添加vhost五.单台节点加入或退出群集1)单节点加入集群2)单节点退出集群 一.MQ简介 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队

Linux下Redis的安装和部署

一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string.list.set.zset和hash.这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作.在此基础上,Redis支持各种不同方式的排序. 和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到

Redis的安装和部署(Linux)

一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string.list.set.zset和hash.这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作.在此基础上,Redis支持各种不同方式的排序. 和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到

Redis分布式缓存安装(单节点)

Redis分布式缓存安装(单节点) Redis官网:http://redis.io独立缓存服务器:IP:xxx.xxx.xxx.xxx安装环境:CentOS 6.6Redis 版本:redis-3.0(因为 Redis3.0 在集群和性能提升方面的特性,rc 版为正式版的候选版,请在安装时去官网选用最新版)用户:root安装目录:/usr/local/redis 下面我们针对于Redis安装做下详细的记录:编译和安装所需的包:# yum install gcc tcl 提醒:下载 3.0 版 R

Redis 的安装与使用(单节点)

Redis 的安装与使用(单节点)   环境:CentOS 6.5 Redis 版本:redis-3.0 (考虑到Redis3.0 在集群和性能提升方面的特性,rc 版为正式版的候选版,而且 很快就出正式版) 安装目录:/usr/local/redis 编译和安装所需的包: # yum install gcc tcl 用户:root 下载redis: 上传到服务器的/usr/local/src 目录下 tar -zxvf redis-3.0.7.tar.gz 创建安装目录: # mkdir /u

Redis Sentinel安装与部署,实现redis的高可用

前言 对于生产环境,高可用是避免不了要面对的问题,无论什么环境.服务,只要用于生产,就需要满足高可用:此文针对的是redis的高可用. 接下来会有系列文章,该系列是对spring-session实现分布式集群session的共享的完整阐述,同时也引伸出缓存的实现:而此篇是该系列的第一篇. github地址:https://github.com/youzhibing/redis 环境准备 redis版本:redis-3.0.0 linux:centos6.7 ip:192.168.11.202,

Linux下Redis的安装和部署(转)

一.Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string.list.set.zset和hash.这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作.在此基础上,Redis支持各种不同方式的排序. 和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到

redis CentOS6.5安装及集群部署

1.下载redis source包 链接:https://pan.baidu.com/s/122ZCjNvjl9Jx6M2YsLrncw 密码:92ze 2.解压 tar -xzf redis-3.2.9.tar.gz 3.安装 $cd rredis-3.2.9 $make $make PREFIX=/usr/local/redis install 4.创建pid,日志,数据dump目录 $mkdir /var/redis/run $mkdir /var/redis/log $mkdir /va