一、什么是redis?
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
二、windows搭建redis集群需要什么软件和环境?
redis集群所需要的Redis、Ruby语言运行环境、Redis所需要的的Ruby驱动, Redis集群的管理工具redis-trib.rb等。
本文所需要的所有软件会在文末附加下载地址。
(Ruby,是一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。目前最新稳定版本为:Ruby2.4.2)
三、redis的安装下载及配置
redis下载可以从多个地方下载,官网下载地址:https://redis.io/download
或者从Github下载:https://github.com/MicrosoftArchive/redis/releases
redis有三个节点的集群,需要6台虚拟机。(本文将在一台机器虚拟配置6个redis服务)
需要启动六个redis服务 解压redis文件夹
每个 文件夹下都有一个redis,redis 默认端口号为 6379,我们从7001端口开始,共有六个命名为7001-7006 六个端口用于测试集群。
打开7001文件夹,打开配置文件redis.windows.conf,修改配置文件的端口
因为要做集群配置 所有还需要修改其他几个地方
# 开启集群
cluster-enabled yes
#集群的配置 配置文件首次启动自动生成
cluster-config-file nodes-7001.conf
# 请求超时
cluster-node-timeout 5000
(注意:修改配置文件时前面一定不能加空格 否则启动会报错)
为了方便启动,我们可以编写一个bat启动程序
redis-server.exe redis.windows.conf 是启动命令
四、安装Ruby环境及reby驱动
redis的集群是使用ruby脚本编写,系统需要有 Ruby 环境支持(本文末有该文件下载)
安装如图:
安装Redis的Ruby驱动rubygems-2.7.6.gem
下载地址:https://rubygems.org/pages/download
下载完之后解压文件,使用cmd命令切换到解压后的文件夹的路径,然后执行ruby setup.rb的命令。
如图:
然后安装redis的gem,需要切换到redis安装目录下,执行命令 gem install redis
如图:
五、安装集群脚本redis-trib
本文末有下载地址
把下载的该文件放在redis的目录下,比如7001目录下。
replicas 1 表示每一个主数据库都拥有从数据库个数为1。master节点不能少于3个,所以我们至少需要6个redis的服务,就是7001-7006 用于测试使用。
六、启动及测试
现在需要启动六个redis 使用之前写好的bat文件运行并执行集群脚本命令。
集群命令是:redis-trib.rb create --replicas 1 192.168.6.212:7001 192.168.6.212:7002 192.168.6.212:7003 192.168.6.212:7004 192.168.6.212:7005 192.168.6.212:7006
连接六个redis服务。
执行之后会有在出现 Can I set the above configuration? (type 'yes' to accept): 请确定并输入 yes 。
然后集群就成功啦。。。
测试:
使用redis的客户端进行连接并测试(redis-cli.exe)
切换至该文件的目录并执行redis-cli -h 192.168.6.212 -p 7001进行连接测试
使用命令dbsize 查看文件的数量
使用 cluster info 查看集群的情况
redis的常用命令参考链接:查看
七、java项目测试redis集群
使用java的RedisTemplate 和jedis来获取连接池使用集群并测试。
该项目在文末有下载地址:
测试结果:如图
本文所需软件的下载地址:https://download.csdn.net/download/jtoozc/10339208
web项目集群测试的下载地址:https://download.csdn.net/download/jtoozc/10339223