我们已经搭建好了HIVE,这一节我们来搭建Redis cluster集群吧,现在都是环境搭建,后续的我们有了实际数据后会在这个集群上来进行数据分析,让我们一步一步的向钱推进吧?!

redis5.0.2集群搭建(两台服务器6节点)

我在集群中选两个节点(node1:192.168.30.101 node2:192.168.30.102)

  1. redis下载地址:下载地址
  2. 在linux下安装gcc
yum install gcc
  1. 在soft目录下创建文件并解压
mkdir -p /root/soft/
 tar -zxvf redis-5.0.2.tar.gz
  1. 进入redis目录下,编译安装
make & make install
  1. 启动redis-server
src/redis-server redis.conf

Java redis压力测试代码 redis集群压力测试_shell


在另一台机上重复以上步骤

开始集群搭建

要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,搭建集群的步骤如下:

  1. 在两个节点上创建集群目录:
mkdir -p /root/soft/redis-cluster

在redis-cluster下分别创建7001,7002,7003 // 7004,7005,7006目录

cd /root/soft/redis-cluster
mkdir 7001 7002 7003 // mkdir 7004 7005 7006
  1. 将原有的的redis.conf拷贝至7001目录
cp /root/soft/redis/redis.conf /root/soft/redis-cluster/7001/
  1. 修改以下内容
    1)daemonize yes
    2)port 8001(分别对每个机器的端口号进行设置)
    3)dir /root/soft/redis-cluster/8001/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据)
    4)cluster-enabled yes(启动集群模式)
    5)cluster-config-file nodes-8001.conf(集群节点信息文件,这里800x最好和port对应上)
    6)cluster-node-timeout 5000
  2. bind 192.168.30.101 127.0.0.1
  3. protected-mode no (关闭保护模式)
    9)appendonly yes
    在这里,这个文件内容较多,找起来vi下超麻烦,推荐模糊查找。先vi进入文件后,按esc键,然后输入 / 后面加上你想找的内容。
  4. 将修改好的配置文件分别拷贝至7002-7006,修改响应的端口,文件名
cp /root/soft/redis-cluster/7001/redis.conf /root/soft/redis-cluster/7002/
cp /root/soft/redis-cluster/7001/redis.conf /root/soft/redis-cluster/7003/
scp /root/soft/redis-cluster/7001/redis.conf root@192.168.1.22:/root/soft/redis-cluster/7004/
scp /root/soft/redis-cluster/7001/redis.conf root@192.168.1.22:/root/soft/redis-cluster/7005/
scp /root/soft/redis-cluster/7001/redis.conf root@192.168.1.22:/root/soft/redis-cluster/7006/
  1. 分别启动6个端口的redis实例
/root/soft/redis/src/redis-server /root/soft/redis-cluster/7001/redis.conf
/root/soft/redis/src/redis-server /root/soft/redis-cluster/7002/redis.conf
/root/soft/redis/src/redis-server /root/soft/redis-cluster/7003/redis.conf
/root/soft/redis/src/redis-server /root/soft/redis-cluster/7004/redis.conf
/root/soft/redis/src/redis-server /root/soft/redis-cluster/7005/redis.conf
/root/soft/redis/src/redis-server /root/soft/redis-cluster/7006/redis.conf
  1. 建立集群
/root/soft/redis/src/redis-cli --cluster create --cluster-replicas 1 192.168.30.101:8001 192.168.30.101:8002 192.168.30.101:8003 192.168.30.102:8004 192.168.30.102:8005 192.168.30.102:8006

Java redis压力测试代码 redis集群压力测试_redis_02

  1. 连接任意一个节点

    集群搭建成功!

redis集群压测

Redis自带一个叫redis-benchmark的工具来模拟N个客户端同时发出M个请求。实验进行了如下对比测试:

redis 性能测试工具可选参数如下所示:
-h 指定服务器主机名 127.0.0.1
-p 指定服务器端口 6379
-s 指定服务器 socket
-c 指定并发连接数 50
-n 指定请求数 10000
-d 以字节的形式指定 SET/GET 值的数据大小 2
-k 1=keep alive 0=reconnect 1
-r SET/GET/INCR 使用随机 key, SADD 使用随机值
-P 通过管道传输 请求 1
-q 强制退出 redis。仅显示 query/sec 值
–csv 以 CSV 格式输出
-l 生成循环,永久执行测试
-t 仅运行以逗号分隔的测试命令列表。
-I Idle 模式。仅打开 N 个 idle 连接并等待。

实例

以下实例同时执行 10000 个请求来检测性能:

redis-benchmark -n 10000  -q

PING_INLINE: 141043.72 requests per second

PING_BULK: 142857.14 requests per second

SET: 141442.72 requests per second

GET: 145348.83 requests per second

INCR: 137362.64 requests per second

LPUSH: 145348.83 requests per second

LPOP: 146198.83 requests per second

SADD: 146198.83 requests per second

SPOP: 149253.73 requests per second

LPUSH (needed to benchmark LRANGE): 148588.42 requests per second

LRANGE_100 (first 100 elements): 58411.21 requests per second

LRANGE_300 (first 300 elements): 21195.42 requests per second

LRANGE_500 (first 450 elements): 14539.11 requests per second

LRANGE_600 (first 600 elements): 10504.20 requests per second

MSET (10 keys): 93283.58 requests per second

(1) PING_INLINE

(2) PING_BULK

(3) SET:将字符串值value关联到key;

(4) GET:返回key所关联的字符串值,如果key存储的值不是字符串类型,返回一个错误;

(5) INCR:将key中存储的数字值增一。不能转换为数字则报错;

(6) LPUSH:将一个或多个值value插入到列表key的表头;

(7) RPUSH:将一个或多个值value插入到列表key的表尾;

(8) LPOP:移除并返回列表key的头元素;

(9) RPOP:移除并返回列表key的尾元素;

(10) SADD:将一个或多个member元素加入到集合set当中,已经存在于集合的member元素将被忽略;

(11) SPOP:移除并返回集合中的一个随机元素;

(12) LPUSH:将一个或多个value插入到列表key的表头;

(13) LRANGE_100:返回列表key中指定区间内的元素,前100条元素;

(14) LRANGE_300:返回列表key中指定区间内的元素,前300条元素;

(15) LRANGE_500:返回列表key中指定区间内的元素,前500条元素;

(16) LRANGE_600:返回列表key中指定区间内的元素,前600条元素;

(17) MSET:同时设置一个或多个key-value对,value为字符串。