Nosql-redis集群

Posted 杨遥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nosql-redis集群相关的知识,希望对你有一定的参考价值。

Redis简介

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

  • Redis支持数据的备份,即master-slave模式的数据备份。

Redis 优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

  • 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

创建集群

  1. 1.1克隆之前的192.168.3.5的虚拟机

            在192.168.3.5的虚拟机上选择管理-->克隆-->虚拟机当前状态-->创建完整的克隆。

            进入刚刚克隆的机器,su- root切换到root用户,因为root权限高一些,后续不想再每一个都sudo。按照提示输入root密码后。

cd /etc/sysconfig/network-scripts/

vi ifcfg-ens32 修改IPADDR=192.168.3.7

注释掉UUID,防止同时启动192.168.3.5出现问题,让虚拟机自动分配

修改完成后保存退出执行service network restart

YPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens32

#UUID=ed28af20-5c71-4118-96fd-7d16c93d110b

DEVICE=ens32

ONBOOT=yes

IPADDR=192.168.3.7

GATEWAY=192.168.3.2

DNS1=114.114.114.114

GATEWAY是我们配置ip网段,配置成一样的可以通过桥接或者nat模式上网。我们主要将ip改成了static,ONBOOT=yes,DNS1使用移动的dns114.114.114.114你也可以配置多个比如DNS2=8.8.8.8谷歌的域名解析。如果没有正确配置网关则不能通外网,如果没有DNS则不能域名解析。

以上都准备好了以后,我们进入第二步骤。

    2.下载最新Redis

        2.1创建文件夹,下载最新的tar.gz包

            mkdir -p /usr/local/redis && cd /usr/local/redis

            wget http://download.redis.io/releases/redis-5.0.4.tar.gz

        2.2解压、编译

            tar -zxvf redis-5.0.4.tar.gz

            cd redis-5.0.4

            make && make install

            此时针对make && make install可能会有以下错误

          error1:make[3]: gcc:命令未找到 说明我们的虚拟机没有安装GCC编译的工具 yum install -y gcc即可。

          error2:致命错误:jemalloc/jemalloc.h:没有那个文件或目录。

需要手动指定一下make MALLOC=libc即可

          error3:You need tcl 8.5 or newer in order to run the Redis test

这个需要是我们的tcl版本太低了我们需要安装一个。

执行一下6个步骤即可,如果下载不下来

https://pan.baidu.com/s/1sDyzCrD3QFXf61UDI-fSbA 

提取码:muik 

1.wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

2. tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/

3.cd  /usr/local/tcl8.6.1/unix/

4. ./configure 

5.make

6. make install 

    3.初始化集群环境

cd /usr/local/redis 

mkdir 6379

mkdir 6380

mkdir 6381

mkdir 6382

mkdir 6383

mkdir 6384

cp redis-5.0.4/redis.conf 6379/

cp redis-5.0.4/redis.conf 6380/

cp redis-5.0.4/redis.conf 6381/

cp redis-5.0.4/redis.conf 6382/

cp redis-5.0.4/redis.conf 6383/

cp redis-5.0.4/redis.conf 6384/

分别修改6379-6384配置文件

port 6379  #端口

bind 127.0.0.1 注释

cluster-enabled yes #启用集群模式

cluster-config-file nodes——6379.conf

cluster-node-timeout 5000 #超时时间

appendonly yes 

daemonize yes #后台运行

protected-mode no #非保护模式

pidfile  /var/run/redis_6379.pid

修改完配置文件后,分别启动6个redis

/usr/local/redis/redis-5.0.4/src/redis-server /usr/local/redis/6379/redis.conf

/usr/local/redis/redis-5.0.4/src/redis-server /usr/local/redis/6380/redis.conf

/usr/local/redis/redis-5.0.4/src/redis-server /usr/local/redis/6381/redis.conf

/usr/local/redis/redis-5.0.4/src/redis-server /usr/local/redis/6382/redis.conf

/usr/local/redis/redis-5.0.4/src/redis-server /usr/local/redis/6383/redis.conf

/usr/local/redis/redis-5.0.4/src/redis-server /usr/local/redis/6384/redis.conf

查看redis启动状态

Nosql-redis集群

执行创建集群命令

redis-cli --cluster create 192.168.3.7:6379 192.168.3.7:6380 192.168.3.7:6381

 192.168.3.7:6382 192.168.3.7:6383 192.168.3.7:6384 --cluster-replicas 1

执行完命令后,redis会根据前三个为master后三个依次对应为Slave1,2,3

此时集群环境初始化完成,系统提示我们是否创建,我们输入yes

redis集群创建完成。这是我们基于redis5.0.x的集群环境,5以前依赖于ruby创建,需要安装ruby,不过现在已经极大的方便了我们创建集群了。

接着我们给集群设置密码

redis-cli -c -p 6379-6084

config set requirepass 123456

我们的集群环境就正式搭建好了,可以愉快的使用springboot创建redis测试了。补充一点,创建集群的时候可能会出现错误,当我们出现错误的时候需要重置集群环境,才能重新创建集群,只需要一下三步即可。

1.redis-cli -c -p 6379

2.flushall 

3.cluster reset


以上是关于Nosql-redis集群的主要内容,如果未能解决你的问题,请参考以下文章

NoSQL-Redis

NoSQL-redis-单机多实例,伪分布式环境搭建

python Nosql-redis 连接管道

Redis集群检测与恢复

redis高级应用(集群搭建集群分区原理集群操作)

宝塔搭建redis集群